我的代码没有按照我的预期运行。出于某种原因,似乎括号的逃避无效。这是原始代码:
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\(");
并遇到类似“未终止群体”的问题。
感谢。