Angular2或TypeScript左边填充带零的字符串

Par*_*osh 22 string padding typescript angular

我有一个数字让我说9.但我需要它作为字符串"09".

我知道我可以写自己的逻辑.但我正在寻找一个隐含的util函数,它可以填充它.

我在TypeScript中使用angular2.寻找像这样.

就像java一样

String.format("%010d", Integer.parseInt(mystring));
Run Code Online (Sandbox Code Playgroud)

Eva*_* M. 34

您可以为此创建自己的功能.要格式化数字,首先必须将其转换为字符串.

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

打字稿

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

编辑:有一些更好,更高效的方法来做到这一点.请参阅本答案中的讨论:https://stackoverflow.com/a/9744576/1734678(如果您有时间,我建议您阅读大部分提交的答案)

更新: ECMAScript 2017现在支持字符串填充

str.padStart(targetLength [, padString])
str.padEnd(targetLength [, padString])
Run Code Online (Sandbox Code Playgroud)

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


mac*_*zos 17

从Angular v4开始,有DecimalPipe可以轻松添加前导零:https://angular.io/api/common/DecimalPipe

在您的HTML中,您可以使用以下内容:

{{ myNumber | number:'2.0' }}


Ela*_*ode 7

您可以在HTML中使用以下模板之一

{{ ("00" + 9).slice(-2) }} // 09
Run Code Online (Sandbox Code Playgroud)

要么

{{ 9 | number: '2.' }} // 09
Run Code Online (Sandbox Code Playgroud)

或在组件ts代码文件中

var x = ("00" + 9).slice(-2);
Run Code Online (Sandbox Code Playgroud)


Ste*_*ott 6

使用最新的 Typescript,您可以执行以下操作:

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) ;
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么不简单?`(String(padChar).repeat(size - text.length) + text)` (2认同)

Bar*_*i r 6

如果我想垫“0”的开始和想要的字符串的长度STR9

str.padStart(9 ,"0")
Run Code Online (Sandbox Code Playgroud)