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

Comment signer la connexion OKEx API version 5 avec websockets ?

Comment convertir une interface{} qui est vraiment une tranche de types dont le genre est reflect.Int32 en tranche de int32 ?

Créer un fichier CSV à partir d'un fichier texte avec des jetons d'en-tête à l'aide de scripts shell