typescript Angular 2或类型脚本:用零向左填充字符串

nnsrf1az  于 2023-03-04  发布在  TypeScript
关注(0)|答案(7)|浏览(197)

我有一个数字,比如说9。但我需要它作为字符串“09”。
我知道我可以写出自己的逻辑。但我正在寻找一个隐式效用函数,可以填补数字。
我正在使用Angular2和TypeScript。正在寻找类似this的东西。
就像Java一样:

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

vsnjm48y1#

您可以为此创建自己的函数。要格式化数字,您必须先将其转换为字符串:

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

类型脚本:

pad(num:number, size:number): string {
    let s = num+"";
    while (s.length < size) s = "0" + s;
    return s;
}
    • 更新:**ECMAScript 2017现在支持字符串填充:
str.padStart(targetLength [, padString])
str.padEnd(targetLength [, padString])

看看padStart 's documentation

    • EDIT:**正如其他人提到的,由于Angular 4,您可以使用此:
{{ myNumber | number:'2.0' }}
ulydmbyx

ulydmbyx2#

由于Angular v4有DecimalPipe,因此我们可以轻松添加前导零:https://angular.io/api/common/DecimalPipe
在你的html中,你可以这样使用then:
{{ myNumber | number:'2.0' }}

dzjeubhm

dzjeubhm3#

您可以使用以下HTML格式的模板之一

{{ ("00" + 9).slice(-2) }} // 09

或者

{{ 9 | number: '2.' }} // 09

或在组件ts代码文件中

var x = ("00" + 9).slice(-2);
eni9jsuy

eni9jsuy4#

如果我想在开始处填充**“0”,并希望字符串str的长度为9**:

str.padStart(9 ,"0")
8xiog9wr

8xiog9wr5#

使用最新的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) ;
}
gkn4icbw

gkn4icbw6#

public padIntegerLeftWithZeros(rawInteger: number, numberOfDigits: number): string {
    let paddedInteger: string = rawInteger + '';
    while (paddedInteger.length < numberOfDigits) {
        paddedInteger = '0' + paddedInteger;
    }
    return paddedInteger;
}

public zeroPadIntegerLeft3Digits(rawInteger: number): string {
    return this.padIntegerLeftWithZeros(rawInteger, 3);
}
kadbb459

kadbb4597#

您可以为此创建管道

{{ID |LeftPadFilter: ID}}


import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'LeftPadFilter',
    pure: false
})
export class LeftPadFilter implements PipeTransform {
    transform(item: string): string {
        return (String('0').repeat(2) + item).substr((2 * -1), 2);
    }
}

相关问题