在下面的代碼中,我期望字符串'/?_ 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