Angular2 or TypeScript Left padding a String with Zeros

匿名 (未验证) 提交于 2019-12-03 08:41:19

问题:

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

回答1:

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



回答2:

With the latest Typescript, you can do:

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


回答3:

Since Angular v4 there is DecimalPipe which let's easily add leading zeros: https://angular.io/api/common/DecimalPipe

In your html, you can use then something like:

{{ myNumber | number:'2.0' }}



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!