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
865 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!

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