変数と連結した正規表現パターンを作成するには、次のようにします。
var test ="52";
var re = new RegExp("/\b"+test+"\b/");
alert('51,52,53'.match(re));
ありがとう
回答:
var re = new RegExp("/\b"+test+"\b/");
\b
文字列リテラルでは、バックスペース文字です。文字列リテラルに正規表現を入れるときは、もう1ラウンドのエスケープが必要です。
var re = new RegExp("\\b"+test+"\\b");
(//
このコンテキストでは、も必要ありません。)
new RegExp('\b'+test+'\b');
When putting a regex in a string literal you need one more round of escaping
。これ(の理由)に関する背景情報はありますか?
new
。ただし、これが当てはまらない可能性のある他のオブジェクトとの一貫性、および一般的に明確にするために、常にを使用しますnew
。