我正在使用Angular 6和HTML 5创建响应式网页。
我想格式化所有类型为“数字”的变量,以便所有显示的数字都具有千位分隔符。
这是我在每个数字上实现千位分隔符的方式:
const num = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
有没有一种方法,我只能指定一次这种格式,并且可以自动将其用于每个“数字”格式变量,而不是在我显示的每个变量中都指定它?
答案 0 :(得分:0)
您可以使用内置的Angular Decimal pipe
您还可以像这样编写自定义管道:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'seprator'})
export class Seprator implements PipeTransform {
constructor() {
}
transform(value: string, unit: string): string {
if(value == undefined)
{
return '';
}
let n = parseInt(value);
const rx = /(\d+)(\d{3})/;
return String(n).replace(/^\d+/, function (w) {
var res = w;
while (rx.test(res)) {
res = res.replace(rx, '$1٬$2');
}
return res;
});
}
}