2012-06-11 2 views
3

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

Например:

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

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

var reg = /\bAB\b/g; 

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

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

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

+0

Это похоже на Javascript, поэтому я пометю его. – nhahtdh

+0

OK^_^Спасибо – Shawn31313

+0

'' shdfkjABdsfk AB sdkfjh sdf AB ".match (/ \ bAB \ b/g)' работает для меня в консоли разработчика (Safari). – nhahtdh

ответ

5

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

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

Спасибо, что согласились, как только смогу с самого первого раза :) – Shawn31313

3

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

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

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