使用Javascript从字符串中删除数字

29

如何使用Javascript从字符串中删除数字?

我对正则表达式并不是很熟练,但我认为可以使用replace来实现上述功能?

如果jQuery已经提供了这样的功能,那就太好了。

//Something Like this??

var string = 'All23';
string.replace('REGEX', '');

我感激任何对此的帮助。

2个回答

48

\d 匹配任何数字,因此您需要用空字符串替换它们:

string.replace(/\d+/g, '')
我在这里使用了+修饰符,以便一次匹配所有相邻的数字,从而需要更少的替换。末尾的g是一个标志,表示“全局”,它意味着它会替换它找到的所有匹配项,而不仅仅是第一个。

谢谢你的解释,也许我可以记住这个方法以备将来之需。哦,等等,不需要这样做,“已收藏”! :) - Abs
3
这个字符串中是否会包含浮点数呢?如果是的话,你需要另一个正则表达式。"str 12.3 or 12,3".replace(/\d+([,.]\d+)?/g) - BrunoLM
该字符串只包含整数。但还是感谢您的建议。 - Abs
需要注意的是,"-1000".match(/\d+/g); 返回的是 "1000" 而不是 "-1000"。 - Kumar
1
如果有人尝试使用评论中的@BrunoLM解决方案,请注意必须有一个替换参数,"str 12.3 or 12,3".replace(/\d+([,.]\d+)?/g, '') - Wiktor Stribiżew

4

只需将以下内容粘贴到地址栏中即可尝试:

javascript:alert('abc123def456ghi'.replace(/\d+/g,''))

\d 代表数字 0-9,+ 表示一个或多个;因此 \d+ 匹配一个或多个数字。 g 是必须的,表示全局匹配,而不是在第一次匹配后退出(默认行为)。


它需要使用 g 标志,否则在 "abc123def456" 上会失败。 - nickf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接