Remplir un nombre avec des zéros non significatifs en JavaScript [dupliquer]
Cette question a déjà des réponses ici:
Solution du problème
Mise à jour ES2017
Vous pouvez utiliser le String.prototype.padStart() intégré
n = 9;
String(n).padStart(4, '0'); // '0009'
n = 10;
String(n).padStart(4, '0'); // '0010'
Pas beaucoup de "slick" jusqu'à présent :
function pad(n, width, z) {
z = z || '0';
n = n + '';
return n.length >= width? n: new Array(width - n.length + 1).join(z) + n;
}
Lorsque vous initialisez un tableau avec un nombre, il crée un tableau avec la length
valeur définie pour que le tableau semble contenir autant d' undefined
éléments. Bien que certaines méthodes d'instance Array ignorent les éléments de tableau sans valeurs, .join()
ce n'est pas le cas, ou du moins pas complètement ; il les traite comme si leur valeur était la chaîne vide. Ainsi, vous obtenez une copie du caractère zéro (ou de ce que "z" est) entre chacun des éléments du tableau ; c'est pourquoi il y a un + 1
là-dedans.
Exemple d'utilisation :
pad(10, 4); // 0010
pad(9, 4); // 0009
pad(123, 4); // 0123
pad(10, 4, '-'); // --10
Commentaires
Enregistrer un commentaire