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 lengthvaleur 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 + 1là-dedans.

Exemple d'utilisation :

pad(10, 4); // 0010
pad(9, 4); // 0009
pad(123, 4); // 0123
pad(10, 4, '-'); // --10

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"