我想用字符串替换字符串中除0-9之外的所有字符,使用Javascript.
为什么这个正则表达式不起作用?
"a100.dfwe".replace(/([^0-9])+/i, "")
Run Code Online (Sandbox Code Playgroud)
And*_*y E 41
您需要/g
修饰符来替换每个匹配项:
"a100.dfwe".replace(/[^0-9]+/g, "");
Run Code Online (Sandbox Code Playgroud)
我还为您删除了冗余i
修饰符和未使用的捕获子表达式括号.正如其他人所指出的,您还可以使用\D
它进一步缩短它:
"a100.dfwe".replace(/\D+/g, "");
Run Code Online (Sandbox Code Playgroud)
那负数呢:
除非您使用负数,否则使用Andy E的示例有效。然后,它会删除“-”符号,同时还会给您一个始终为正数的数字(可能没问题)。但是,如果您希望数字小于0,我建议您执行以下操作:
"a-100.dfwe".replace(/(?!-)[^0-9.]/g, "") //equals -100
Run Code Online (Sandbox Code Playgroud)
但是要小心,因为这将保留所有的“-”符号,如果您的文本看起来像“ -a-100.dfwe”,则会出现错误