javascript - 正则表达式替换非数字

标签 javascript regex angular

我想用空字符串替换所有非数字字符。我发现this solution

我试图在更改时替换输入元素的值。但是当我使用上面的方法时,直到我按下数字后它才会被替换。

我输入的每个非数字都会保留,直到我输入数字

例如:2aaaaa 将不会被替换。但是一旦输入2aaaa3,它就会替换所有的a,变成23

这是正常行为吗?我怎样才能达到我的要求。

组件.ts

mobileChanged = () => {
    this.mobile = this.mobile.replace(/\D/g,'');
  };

Angular 组件.html

<input type="text" [(ngModel)]="mobile" (ngModelChange)="mobileChanged()">

最佳答案

您可以使用 jQuery 中的 keyup 或 Javascript 中的 onkeyup

$("document").ready(function() {
  $("input").keyup(function() {
    let v = this.value.replace(/\D/g, '');
    this.value = v;
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" value="" />

关于javascript - 正则表达式替换非数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59198720/

相关文章:

regex - Powershell正则表达式按行而不是按整个字符串运行

javascript - 使用内部脚本设置innerHTML

python - 匹配两个通配字符串的优雅方式

javascript - 如何在使用 div 的类时将 "display: none"应用到 div 的单击事件上

Java 正则表达式 - 管道分隔字符串上的模式匹配

Angular Material 在某些组件中不起作用

javascript - Firefox 中的 typescript anchor 标记单击事件不起作用

angular - 使用自定义匹配器限制路由

javascript - 如何加载 CSV 文件以在 HTML5 页面上显示并使用搜索框对其进行过滤?

javascript - 将 CORS 与 AWS API Gateway 结合使用有哪些安全隐患?