javascript - Angular 中的分隔符

标签 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 位数时,它会变坏。由于它是在第二遍的“keyup”上调用的,因此它会在第二个数字之后添加另一个“,”,如下所示:

1,2,345

继续:1,2,3,455

我怎样才能正确实现这个,即在用户键入时添加千位分隔符。 感谢您对此进行调查。

最佳答案

我的实现有问题:我没有删除之前添加的逗号。请参阅以下代码段中的评论

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

关于javascript - Angular 中的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50442409/

相关文章:

javascript - 使用不同的 ng-controller 和 ng-include

javascript - 如何在WordPress中使用jQuery定期调用Ajax?

angular - 为点击的元素显示多个加载指示器

用于流程图构建器或工作流编辑器的 Angular 库

javascript - Angular2 : How to resolve Component is not part of any NgModule . ..?

javascript - 从内部回调中断父函数的执行

JavaScript RegExp 包括模式中的标志

Google Data Studio 中的 REGEX RE2 提取 - REGEX_EXTRACT

ruby - 正则表达式解析逗号分隔的列表,不包括括号内的内容

Angular 7 : NullInjectorError for failing test, 服务在组件中仍然有效