7

このコードで予期しない結果が得られます:

'foo'.match(new RegExp('\bfoo\b')); // Returns null

nullこれが「foo」を返すのに、なぜこれが返されるのですか?

'foo'.match(new RegExp('foo')); // Returns "foo"

単語境界マーカーも先頭と末尾に一致しませんか?

編集:変数を挿入しているため、正規表現自体を文字列にする必要があります。

4

2 に答える 2

15

バックスラッシュをエスケープする

'foo'.match(new RegExp('\\bfoo\\b'));
于 2011-02-17T03:07:06.890 に答える
-2

引用符で囲まないでください...代わりに、これを行います:-

'foo'.match(new RegExp(/\bfoo\b/))
于 2011-02-17T03:04:07.483 に答える