web-dev-qa-db-fra.com

Angular2 ou TypeScript Gaucher une chaîne avec des zéros

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));
17

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

27
Evans M.

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' }}

9
maczos

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) ;
}
4
Steven Scott
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);
}
0
CalvinDale