繁体   English   中英

javascript正则表达式匹配有效,但替换无效

[英]javascript regex match works but replace doesnt work

我正在尝试使用正则表达式替换正则表达式。 当我使用match方法时,它将返回具有正确索引并匹配的数组,但是当我使用replace并添加替换字符串时,它将无法正常工作。

var a = "$#,##0.00".match("[\\d+-,#;()\\.]+");
console.log(a);

返回["#,##0.00", index: 1, input: "$#,##0.00"]

var b = "$#,##0.00".replace("[\\d+-,#;()\\.]+","");
console.log(b);

返回$#,##0.00而我希望它仅返回$

有人可以指出我做错了什么吗? 谢谢链接到示例是:

 var a = "$#,##0.00".match("[\\\\d+-,#;()\\\\.]+"); console.log(a); var b = "$#,##0.00".replace("[\\\\d+-,#;()\\\\.]+",""); console.log(b); 

.match仅接受正则.match 因此,如果提供了一个字符串,则.match将使用new RegExp将其显式转换为regexp。

但是.replace接受一个字符串(将直接用作搜索)或一个正则表达式,如果要使用正则表达式,则必须传入一个正则表达式。

var b = "$#,##0.00".replace(new RegExp("[\\d+-,#;()\\.]+"), "");
//                          ^^^^^^^^^^^                  ^

或使用regexp文字:

var b = "$#,##0.00".replace(/[\d+-,#;()\.]+/, "");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM