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') ' –
うまくいきました。なぜ余分なスラッシュを追加する必要がありますか? –
これは、コンストラクタで正規表現を作成するときに文字列を渡すためです。文字列中の '\'は、最初にコンストラクタに渡す前に次の文字をエスケープするため、 '_ [\ w +] ''は '_ [w +]'になります。 –