Javascript String.replace regex未替换字符串中的“*”
我有一个字符串,我正在运行一个Javascript String.replace regex未替换字符串中的“*”,javascript,regex,Javascript,Regex,我有一个字符串,我正在运行一个字符串。在它上面替换,它不会从字符串中删除*字符,而是删除|字符 var s=“|*55.6”; s=s。替换(/[^0-9.]/,“”); 控制台日志如果要替换多个匹配项,请使用(/…/g): s = s.replace(/[^0-9.]+/g, "") //=> "55.6" 编辑:使用+(连续匹配多个模式)跟随您的模式将产生更少的匹配,因此使用“替换将比单独使用g标志更有效地运行。我会同时使用它们。感谢您在《在我面前》中使用此技术。 演示片段 v
字符串。在它上面替换,它不会从字符串中删除*
字符,而是删除|
字符
var s=“|*55.6”;
s=s。替换(/[^0-9.]/,“”);
控制台日志代码>如果要替换多个匹配项,请使用(/…/g
):
s = s.replace(/[^0-9.]+/g, "") //=> "55.6"
编辑:使用+
(连续匹配多个模式)跟随您的模式将产生更少的匹配,因此使用“
替换将比单独使用g
标志更有效地运行。我会同时使用它们。感谢您在《在我面前》中使用此技术。
演示片段
var s=“|*55.6”
s=s.替换(/[^0-9.]+/g,”)
console.log/=>“55.6”
您没有为您的正则表达式使用,这就是为什么在操作结束时替换了第一个匹配项
var s=“|*55.6”;
s=s.replace(/[^\d.]/g,”);
控制台日志代码>这是因为replace只执行了一次。使用g
选项替换每个匹配项
s = s.replace(/[^0-9.]/g, "");
您缺少查找一个或多个事件的+
:
var s=“|*55.6”;
s=s.替换(/[^0-9.]+/,“”);
控制台日志代码>替换字符串时需要使用a或a
var s=“|*55.6”;
s=s.替换(/[^0-9.]/g,”);
控制台日志代码>一些答案提到了,但它仍然只会替换第一个匹配项:
console.log(“|*45.6abc.”替换(/[^0-9.]+/,”)
可能重复的