我需要在Ionic应用程序中为输入实现千位分隔符。我需要在用户输入时实现此目的。我带来了以下实施:
在Ts档案中:
public amount:string; // model
format(){
this.amount=this.separator(this.amount)
}
separator(amount)
{
var num_parts = amount.split(".");
num_parts[0] = num_parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return num_parts.join(".");
}
在html中:
<ion-input [(ngModel)]="amount" (keyup)="format()" placeholder="Text Input"></ion-input>
它工作正常,直到数字位数保持4(数字部分)。当我有超过4位数时,它会变坏。因为它被称为&#39; keyup&#39;在第二次通过它增加了另一个&#39;,&#39;在第二个数字之后:
1,2,345
这仍在继续:1,2,3,455
如何实现这一点,即在用户输入时添加千位分隔符。 感谢您对此进行调查。
答案 0 :(得分:0)
我的实现存在问题:我没有删除以前添加的逗号。请参阅以下代码段中的评论
separator(amount)
{
var num_parts = amount.split(".");
num_parts[0]= num_parts[0].replace(/,/g , ""); // I was not removing previously added comma
num_parts[0] = num_parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return num_parts.join(".");
}