0
我試圖消除一些字符,如果在我的字符串中找到像v_ [i]將v。要做到這一點我使用RegExp,但它不捕獲組。RegexExp沒有正確捕獲組
var string='v_[i]';
var regexExp = new RegExp('_[\w+]','ig');
var finalstring = string.replace(regexExp,'');
alert(finalstring);
而在另一方面,如果我使用一個字符串它完美
var finalstring = string.replace(/_\[\w+\]/ig,'');
那麼爲什麼正則表達式沒有捕捉爲文本字符串不羣。
'新的RegExp( '_ [\ w +]', 'IG')'你忘了逃避你的括號和反斜線 - >應該是'新RegExp('_ \\ [\\ w + \\]','ig')' –
它工作正常,爲什麼需要添加額外的斜槓? –
那是因爲當你用構造函數創建一個正則表達式時,你傳入一個字符串。在將字符串傳遞給構造函數之前,字符串中的任何'\'都會首先轉義下一個字符,因此'_ [\ w +]''變爲'_ [w +]'。 –