

RegExpを利用して、正規表現オブジェクトを変数strから生成する以下の形式

[code]

    let regexp = new RegExp(str + '(.*?)', 'gmi');
    
[/code]

を正規表現リテラルで記載することはできますでしょうか？

以下のコード程度しか思いつかず、これでは正規表現オブジェクトにはなりませんでした

[code]

    let regexp = '/' + str + '(.*?)'  + '/gmi';
    
[/code]

お知恵を拝借できれば幸いです。


CC BY-SA 3.0
2018-02-10T14:35:37.730
41634
2019-01-06T20:49:28.630
27361
question
javascript 正規表現
正規表現リテラルに変数を使用する方法はありますか？


下記記事をご参照ください。

[Javascript Regex: How to put a variable inside a regular
expression?](https://stackoverflow.com/questions/4029109/javascript-regex-how-
to-put-a-variable-inside-a-regular-expression)

Chrome 71.0で正規表現リテラルに文字列を埋め込もうとしてもできませんでした。つまり、できないということです。

[code]

    > a
    "abc"
    > /${a}/
    /${a}/
    > `${a}`
    "abc"
    
[/code]


CC BY-SA 4.0
2019-01-05T07:00:56.557
51725
2019-01-05T07:00:56.557
31654
41634
answer


evalで無理やりやってみればこんな感じですかね。

[code]

    function    var_replace( s, reg, tgt ){
    var repstr  = '\'' + s + '\'.replace(' + reg + ',\'' + tgt + '\')'
    return  eval( repstr )
    }
    
    var str ='abcdef1234+-=';
    var reg='/\\d/g'    //javascriptの文字列の仕様上、バックスラッシュは二重にしなければならない
    console.log( str.replace( /\d/g, '@' ) )
    console.log( str.replace( reg, '@' ) )
    console.log( var_replace( str, reg, '@' ) )
    
[/code]


CC BY-SA 4.0
2019-01-06T20:49:28.630
51767
2019-01-06T20:49:28.630
31146
41634
answer