Как использовать границы слов в объекте 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");
Поскольку это строка, а обратная косая черта экранирует следующий символ, вам придется избегать обратной косой черты.