You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS求助:如何移除输入中不匹配正则的字符?

解决输入内容保留数字和逗号的问题

你的问题出在正则表达式的逻辑上:当前代码是把符合要求的字符(数字、逗号)替换为空,正好和需求相反。要实现保留数字和逗号、删除其他字符的效果,需要修改正则,匹配所有不符合要求的字符并替换掉。

修改后的代码:

<input id="myInput" onblur="myFunction()">

<script>
    function myFunction() {
      var value = document.getElementById('myInput').value;
      // 匹配除数字和逗号之外的所有字符,全局替换为空
      var regexCharacter = /[^0-9,]+/g;
      var strFirst = value.replace(regexCharacter, '');
      document.getElementById('myInput').value = strFirst;
    }
</script>

关键说明:

  • 正则[^0-9,]+中的^在字符集[]内表示取反,意思是匹配任何不在0-9和,范围内的字符
  • 去掉了原正则里多余的|,因为字符集内的|会被当作普通字符匹配,不是逻辑或的作用
  • 给strFirst添加了var声明,避免全局变量污染

测试输入a12,b2a时,会删除所有非数字/逗号的字符,最终得到12,2,符合你的需求。

内容的提问来源于stack exchange,提问作者Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:25:17