在下面的代码中,我期望字符串'/?_ escaped_fragment _ =/faq'被转换为'/ seo/faq'。Javascript替换正则表达式不按预期工作
取而代之,我得到'/?/ seo/faq'。代码有什么问题?
var url = '/?_escaped_fragment_=/';
var rule = new RegExp('\/?_escaped_fragment_=(.*)');
alert(url.replace(rule,'/seo/$1')); // this shows up '/?/seo//'
http://jsfiddle.net/wLfuuw1p/5/
'?'在正则表达式中有特殊含义。转义它,并使用正则表达式而不是'RegExp'构造函数。 – Ryan