Problema con RegExp en Javascript

cabron

Hola

Estoy usando una expresión regular de esta forma:

/[<>ºª"·%&=¿¡'@#Žš\?\/!()[]{}\\$^*+]/.test(valor);

funciona sin problemas, pero cuando intento utilizarla desde un objeto regexp tal que así:

var formato = new RegExp( '[<>ºª"·%&=¿¡@#Žš\'\?\/!()[]{}\\$^*+]');

Obtengo el siguiente error:

Error: invalid quantifier *+]

Parece ser que no me coge * y + como caracteres literales que tiene que buscar, en lugar de eso intenta aplicarlos como operadores de la expresión regular, pero no entiendo por qué si están escapados con \ ademas que en el primer caso funciona bien.

¿Alguna idea?

zenkiu

LOc0

Creo que tienes que escapar dos veces los backslashes. (Prueba tb a usar comillas dobles para el string).

var formato = new RegExp( "[<>ºª"·%&=¿¡'@#Žš\?\/\!\(\)\[\]\{\}\\\$\\*\+]" );

Salu2 ;)

cabron

#2:

No puedo usar comillas dobles para las cadenas (sí es absurdo... pero no está permitido, una de las 2.000 normas de "calidad del código" que algún iluminado ha puesto y que no sirve para nada).

Lo probaré mañana a ver si funciona, pero ya por curiosidad más que nada, por que al final vamos a cambiar las validaciones y ya no necesito esa expresión regular.

Usuarios habituales

  • cabron
  • LOc0