Javascript RegExp没有正确转义括号。为什么?

时间:2017-09-15 17:44:46

标签: javascript regex escaping parentheses

我的代码没有按照我的预期运行。出于某种原因,似乎括号的逃避无效。这是原始代码:

var string = "url('http://localhost/custom/img/image.jpg')"; /* it can be single or double quotes */
var base_url = "http://localhost"; /* this can be any url */
var re = new RegExp("url\((\"|\')" + base_url + "\/(.*)(\"|\')\)"); /* notice the escaped parentheses in two places */
var clean_str = string.replace(re,'$2');
console.log clean_str

未找到匹配项,因此控制台中的结果为: url('http://localhost/custom/img/image.jpg')

所以我将RegExp行更改为下面的行:

/* I replaced the escaping character with a character set */
var re = new RegExp("url[(](\"|\')" + base_url + "\/(.*)(\"|\')[)]");

导致控制台: custom / img / image.jpg

现在它有效。 我在第一个上做错了什么?我尝试了一些简单的表达式,尝试转义括号,比如

var re = new RegExp("url\(");

并遇到类似“未终止群体”的问题。

感谢。

0 个答案:

没有答案