私は HTML と JavaScript で正規表現テスターを設計しています。ユーザーは正規表現、文字列を入力し、ラジオ ボタンでテストする関数 (検索、一致、置換など) を選択すると、指定された引数でその関数が実行されたときに結果がプログラムに表示されます。当然、置換などの追加の引数を入力するための追加のテキスト ボックスも用意されます。
問題は、ユーザーから文字列を取得して、それを正規表現に変換することです。//
入力した正規表現を 's で囲む必要がないとすると、 や などのフラグを設定できなくなります。したがって、式の前後に 's が必要ですが、その文字列を正規表現に変換するにはどうすればよいでしょうか。文字列であるためリテラルにすることはできません。また、 's がないと文字列ではないため、RegExp コンストラクターに渡すこともできませんg
。ユーザー入力文字列を正規表現に変換する他の方法はありますか。 's を含む正規表現の文字列とフラグを解析してから、別の方法で構築する必要がありますか。文字列を入力してもらい、フラグを別々に入力する必要がありますか。i
//
//
//
ベストアンサー1
使用RegExp オブジェクト コンストラクター文字列から正規表現を作成するには:
var re = new RegExp("a|b", "i");
// same as
var re = /a|b/i;