Search code examples
stringangulartypescriptpadding

Angular2 or TypeScript: Left padding a String with Zeros


I have a number, let's say 9. But I need it as the string "09".

I know I can write my own logic. But I am looking for an implicit utility function which can pad the number.

I am using Angular2 with TypeScript. Looking for something like this.

Just similar to Java:

String.format("%010d", Integer.parseInt(mystring));

Solution

  • You can create your own function for this. To format the number you will have to convert it to a string first:

    function pad(num, size) {
        let s = num+"";
        while (s.length < size) s = "0" + s;
        return s;
    }
    

    TypeScript:

    pad(num:number, size:number): string {
        let s = num+"";
        while (s.length < size) s = "0" + s;
        return s;
    }
    

    Edit: There are a couple of better and more performant ways to do this. See the discussion in this answer (I recommend reading most of the submitted answers if you got time): https://stackoverflow.com/a/9744576/1734678

    Update: ECMAScript 2017 now has support for string padding:

    str.padStart(targetLength [, padString])
    str.padEnd(targetLength [, padString])
    

    Check out padStart's documentation.

    EDIT: As mentioned by others, since Angular 4 you can use this:

    {{ myNumber | number:'2.0' }}