JavaScript で正規表現をあらわすときは /(.*?)/ のように / で囲みますが、この / で囲まれたパターン文字列の中に変数を使う場合どのようにすればよいのでしょうか。
new RegExp を使って正規表現オブジェクトを生成することで対応が可能でした。RegExp コンストラクタにパターン文字列を渡すことで、 / で囲んだ時と同じように正規表現オブジェクトが生成されます。
下記のコードは image.jpg という文字列を image_on.jpg という文字列に置き換えます。
1 2 3 4 |
var filename = 'image.jpg'; var ext = 'jpg'; filename.replace(new RegExp('.' + ext), '_on$&'); // image_on.jpg が返される |