Angular2 or TypeScript Left padding a String with Zeros

Partha Sarathi Ghosh picture Partha Sarathi Ghosh · Nov 21, 2016 · Viewed 53.1k times · Source

I have a number let say 9. But I need it as String "09".

I know i can write my own logic. But I am looking for a implicit util function which can pad it.

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

Just Similar like java

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

Answer

Evans M. picture Evans M. · Nov 21, 2016

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: https://stackoverflow.com/a/9744576/1734678 (I recommend reading most of the submitted answers if you got time)

Update: ECMAScript 2017 now has support for string padding

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

Check https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

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

{{ myNumber | number:'2.0' }}