Граница слова не будет соответствовать началу или концу в JavaScript - PullRequest
7 голосов
/ 17 февраля 2011

Я получаю неожиданные результаты с этим кодом:

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

Почему это возвращает null, а этот возвращает "foo"?

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

Немаркер границы слова совпадает с началом и концом?

РЕДАКТИРОВАТЬ: мне нужно, чтобы само регулярное выражение было строкой, потому что я вставляю в нее переменные.

Ответы [ 2 ]

14 голосов
/ 17 февраля 2011

Избежать обратной косой черты

'foo'.match(new RegExp('\\bfoo\\b'));
0 голосов
/ 17 февраля 2011

Не заключайте в кавычки ... вместо этого сделайте следующее: -

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