0

私は正規表現を持っています

var p = /\bj[^\b]*?\b/gi;

「j」を変数値にする必要がありますが、次のことを行うと;-

var p = new RegExp('\\b'+'${0}'+'[^\\b]*?\\b', 'gi');

エラーが発生します-

Uncaught SyntaxError: Invalid regular expression: /\b${0}[^\b]*?\b/: Nothing to repeat 

どんな助けでも感謝します。

ありがとうございました

4

3 に答える 3

1

私はあなたが次のことを望んでいると思います:

var p = new RegExp('\\b'+${0}+'[^\\b]*?\\b', 'gi');

引用符で囲まれ${0}ていると、変数値を挿入する代わりに、それらの文字を使用して文字列を作成するだけです。

于 2012-11-14T19:52:25.687 に答える
0

行ったように変数を引用符で囲むと、'${0}'それが文字列として扱われます。前後の引用符を削除すると、変数として扱われます。

于 2012-11-14T19:52:12.183 に答える
0

申し訳ありませんが、もっと明確にするべきでした。値 '{0}' は、変数ではなく、置き換えられるトークンです。「{」と「}」は正規表現の特殊文字であるため、エラーが発生していました。

したがって、トークンパターンを変更すると問題が修正されました

var p = new RegExp('\\b'+'%text%'+'[^\\b]*?\\b', 'gi');
于 2012-11-15T10:01:59.410 に答える