Как использовать границы слов в объекте RegExp

Что я хочу знать, так это как использовать границы слов в объекте RegExp.

Например:

var reg = new RegExp("\bAB\b", "g");

Это не работает, и я не могу сделать:

var reg = /\bAB\b/g;

Поскольку позже мне нужно будет заменить AB на переменную.

Я знаю, что все остальные вещи работают в объекте RegExp, но по какой-то причине границы слов не работают. Спасибо за любую помощь в этом вопросе.:)

Пример: http://jsfiddle.net/7Kt5A/1/

2 ответа

Решение

Избежать обратной косой черты с помощью обратной косой черты, чтобы \b не интерпретируется как побег, а скорее как буквальный \b,

var reg = new RegExp("\\bAB\\b", "g");
reg.test(' AB ');
// true
reg.test('aABb');
// false

Вам просто нужно несколько дополнительных обратных косых черт

var reg = new RegExp("\\bAB\\b", "g");

Поскольку это строка, а обратная косая черта экранирует следующий символ, вам придется избегать обратной косой черты.

Другие вопросы по тегам