Estás mezclando las dos formas de crear expresiones regulares en JavaScript. Si utiliza una expresión regular literal, /
es el delimitador de expresiones regulares, el modificador g
sigue inmediatamente al delimitador de cierre, y \b
es la secuencia de escape para un límite de palabra:
var regex = /width\b/g;
si lo crea en la forma de una cadena literal para el constructor RegExp, que dejar fuera de los delimitadores de expresiones regulares, se pasa modificadores en forma de un segundo argumento de cadena, y hay que doblar las barras invertidas en las secuencias de escape de expresiones regulares:
var regex = new RegExp('width\\b', 'g');
la forma en que está haciendo es decir, el \b
se está convirtiendo en un retroceso carácter antes de que llegue al compilador de expresiones regulares; tienes que escapar de la barra diagonal inversa para pasar el procesamiento de cadena de escape literal de cadena de JavaScript. O usa un literal de expresión regular.
sigue siendo el mismo resultado Mark. http://cld.ly/b616ma –
¿podrías probar con searchStr solo sin la parte '\\ b'? se supone que su cadena debería funcionar sin eso. – YOU
@Fares, necesitas ''\\ b'' con 2' \ 's, no'' \ b''. – kennytm