Maison > interface Web > js tutoriel > Comment puis-je remplir une chaîne à une longueur spécifique en JavaScript ?

Comment puis-je remplir une chaîne à une longueur spécifique en JavaScript ?

Linda Hamilton
Libérer: 2024-11-25 12:59:14
original
812 Les gens l'ont consulté

How Can I Pad a String to a Specific Length in JavaScript?

Remplir une chaîne à la longueur souhaitée en JavaScript

Introduction

Ajouter un remplissage à une chaîne peut être une tâche nécessaire pour diverses raisons, telles que l'alignement ou le formatage. Cet article explique comment remplir une chaîne à une longueur spécifiée en JavaScript.

Solution ES8

ECMAScript 2017 (ES8) a introduit String.padStart, rendant le remplissage de chaîne sans effort. Sa syntaxe est :

string.padStart(targetLength, [padString])
Copier après la connexion

Exemple :

"Jonas".padStart(10); // Default pad string is a space
"42".padStart(6, "0"); // Pad with "0"
"*".padStart(8, "-/|\"); // produces '-/|\-/|*'
Copier après la connexion

Polyfill pour les navigateurs pré-ES8

Pour les navigateurs qui ne prennent pas en charge ES8, un polyfill peut être utilisé :

String.prototype.padStart = function (targetLength, padString) {
  if (this.length >= targetLength) { return this; }
  padString = padString !== undefined ? padString : ' ';
  return padString.repeat((targetLength - this.length) / padString.length) + this;
};
Copier après la connexion

Solution classique

Avant ES8, une approche courante impliquait de préfixer le remplissage :

var n = 123

String("00000" + n).slice(-5); // returns 00123
("00000" + n).slice(-5); // returns 00123
("     " + n).slice(-5); // returns "  123" (with two spaces)
Copier après la connexion

Extension d'objet chaîne

Voici une extension du String object :

String.prototype.paddingLeft = function (paddingValue) {
   return String(paddingValue + this).slice(-paddingValue.length);
};
Copier après la connexion

Exemple d'utilisation :

function getFormattedTime(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();

  hours = hours.toString().paddingLeft("00");
  minutes = minutes.toString().paddingLeft("00");

  return "{0}:{1}".format(hours, minutes);
};

String.prototype.format = function () {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function (match, number) {
        return typeof args[number] != 'undefined' ? args[number] : match;
    });
};
Copier après la connexion

Cela renvoie une heure au format "15:30".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal