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])
Exemple :
"Jonas".padStart(10); // Default pad string is a space "42".padStart(6, "0"); // Pad with "0" "*".padStart(8, "-/|\"); // produces '-/|\-/|*'
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; };
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)
Extension d'objet chaîne
Voici une extension du String object :
String.prototype.paddingLeft = function (paddingValue) { return String(paddingValue + this).slice(-paddingValue.length); };
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; }); };
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!