首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript regex,替换除数字之外的所有字符

Javascript regex,替换除数字之外的所有字符
EN

Stack Overflow用户
提问于 2012-02-16 18:08:49
回答 4查看 97K关注 0票数 27

我想使用Javascript替换字符串中除0-9之外的所有字符。

为什么这个正则表达式不能工作?

代码语言:javascript
复制
 "a100.dfwe".replace(/([^0-9])+/i, "")
EN

回答 4

Stack Overflow用户

发布于 2012-02-16 18:12:39

\D的意思是“非数字”:

代码语言:javascript
复制
"a100.dfwe".replace(/\D/g, "")
票数 22
EN

Stack Overflow用户

发布于 2016-03-04 23:45:06

负数怎么办:

除非你有一个负数,否则使用Andy E的例子是有效的。然后,它删除了'-‘符号,还留下了一个始终为正的数字(这可能是可以的)。但是,如果你想让数字小于0,我建议你这样做:

代码语言:javascript
复制
 "a-100.dfwe".replace(/(?!-)[^0-9.]/g, "")    //equals -100

但是要小心,因为这会留下所有的'-‘符号,如果你的文本看起来像"-a-100.dfwe“,就会给你一个错误。

票数 7
EN

Stack Overflow用户

发布于 2012-02-16 18:15:36

这不起作用,因为带有重复修饰符+的字符类[^0-9] (=除数字之外的任何字符)将只匹配一个非数字字符序列,例如"aaa“。

出于您的目的,可以按照其他修饰符的建议使用/g修饰符(以全局替换所有匹配项),还可以使用预定义的字符类\D (=非数字)而不是[^0-9],这将产生更简洁的正则表达式/\D+/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9309278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档