J'ai un nombre disons 9. Mais j'en ai besoin comme chaîne "09".
Je sais que je peux écrire ma propre logique. Mais je suis à la recherche d’une fonction utilitaire implicite qui puisse la compléter.
J'utilise angular2 avec TypeScript. Vous cherchez quelque chose comme ceci .
Juste similaire comme Java
String.format("%010d", Integer.parseInt(mystring));
Vous pouvez créer votre propre fonction pour cela. Pour formater le nombre, vous devez d'abord le convertir en chaîne.
function pad(num, size) {
let s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
Manuscrit
pad(num:number, size:number): string {
let s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
Edit: Il existe deux façons plus performantes et plus performantes de faire cela . Voir la discussion dans cette réponse: https://stackoverflow.com/a/9744576/1734678 (Je recommande lire la plupart des réponses soumises si vous en avez le temps)
Mise à jour: ECMAScript 2017 prend désormais en charge le remplissage de chaîne.
str.padStart(targetLength [, padString])
str.padEnd(targetLength [, padString])
Vérifiez https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
Depuis Angular v4, DecimalPipe permet d’ajouter facilement des zéros non significatifs: https://angular.io/api/common/DecimalPipe
Dans votre html, vous pouvez utiliser ensuite quelque chose comme:
{{ myNumber | number:'2.0' }}
Avec le dernier TypeScript, vous pouvez faire:
let myStr:string = padLeft('123', '0', 6); // '000123'
padLeft(text:string, padChar:string, size:number): string {
return (String(padChar).repeat(size) + text).substr( (size * -1), size) ;
}
public padIntegerLeftWithZeros(rawInteger: number, numberOfDigits: number): string {
let paddedInteger: string = rawInteger + '';
while (paddedInteger.length < numberOfDigits) {
paddedInteger = '0' + paddedInteger;
}
return paddedInteger;
}
public zeroPadIntegerLeft3Digits(rawInteger: number): string {
return this.padIntegerLeftWithZeros(rawInteger, 3);
}