Angular2 or TypeScript Left padding a String with Zeros

后端 未结 7 1808
無奈伤痛
無奈伤痛 2020-12-16 09:42

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

7条回答
  •  一生所求
    2020-12-16 10:26

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

提交回复
热议问题