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)
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); };
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; }); };
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 '-/|\-/|*'
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; } };
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!