Angular中的分隔符

时间:2018-05-21 05:21:49

标签: javascript regex angular algorithm ionic-framework

我需要在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

如何实现这一点,即在用户输入时添加千位分隔符。 感谢您对此进行调查。

1 个答案:

答案 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(".");
  }