Maison > interface Web > js tutoriel > Comment puis-je remplir efficacement des chaînes en JavaScript ?

Comment puis-je remplir efficacement des chaînes en JavaScript ?

DDD
Libérer: 2024-11-23 12:31:17
original
867 Les gens l'ont consulté

How Can I Efficiently Pad Strings in JavaScript?

Fonction JavaScript pour le remplissage de chaîne

Introduction

Le remplissage d'une chaîne implique l'ajout de caractères au début ou à la fin pour atteindre un longueur désirée. Ceci est utile dans divers scénarios, tels que l'alignement dans des tableaux ou le formatage de nombres. Cet article explore une fonction JavaScript qui facilite le remplissage des chaînes.

Solutions pré-ES8

Avant ECMAScript 8 (ES8), les développeurs utilisaient diverses méthodes pour le remplissage des chaînes. Une approche simple consiste à concaténer la chaîne avec une valeur de remplissage prédéfinie et à découper le résultat pour obtenir la longueur souhaitée :

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

Une autre solution étend l'objet chaîne avec une méthode paddingLeft :

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

Cette méthode peut être utilisée comme suit :

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

ES8 et Beyond

ES8 a introduit la méthode String.padStart, qui simplifie le remplissage des chaînes :

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

Si String.padStart n'est pas disponible, un polyfill peut être utilisé pour l'ajouter. Le polyfill suivant étend l'objet chaîne :

String.prototype.padLeft = function (desiredLength) {
  var padString = " ";
  if (arguments.length > 1) {
    padString = arguments[1];
  }

  var padLength = desiredLength - this.length;
  if (padLength >= 0) {
    return padString.repeat(Math.ceil(padLength / padString.length)).slice(0, padLength) + this;
  } else {
    return this;
  }
};
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal