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

正则表达式报错排查:替换字符串中非数字与非句点内容的问题

问题分析与解决方案

嗨,我来帮你排查下正则表达式的问题~你的需求是保留字符串里的数字和句点,把其他所有内容删掉,但当前的正则写反了逻辑,还写错了数字范围,所以没达到预期。

错误点拆解

  • 逻辑方向错误:你写的/[09.-]/g是匹配0、9、.、-这几个字符,然后把它们替换为空——这和你想要的“保留数字和句点”完全相反,应该匹配非数字、非句点的字符再删除。
  • 数字范围错误:字符集里的09不是“0到9”的意思,它只是单个字符0和9,正确的数字范围写法是0-9(或者用正则简写\d代表任意数字)。

正确实现

你需要使用否定字符集[^...],它的作用是匹配所有不在集合内的字符。把数字(0-9或\d)和句点放进否定字符集里,就能精准匹配所有要删除的内容:

const string = 'I am a 1a.23.s12h31 dog';
const result = string.replace(/[^0-9.]/g, ''); 
// 也可以用\d简写:string.replace(/[^\d.]/g, '')
console.log(result); // 输出:1.23.1231

这样就能得到你想要的预期结果啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:02:54