2011-01-04 5 views
18

Estoy seguro de que es algo muy pequeño que me falta pero no he podido descifrarlo.expresión regular de Javascript - cadena al objeto RegEx

que tienen una variable de JavaScript con el patrón de expresión en ella pero me parece que no puede ser capaz de hacer que funcione con la clase RegEx

la siguiente siempre se evalúa como falsa:

var value = "[email protected]"; 
var pattern = "^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$" 
var re = new RegExp(pattern); 
re.test(value); 

pero si lo cambio en una expresión adecuada de expresiones regulares (mediante la eliminación de las cotizaciones y la adición de la / al comienzo y al final del patrón), comienza a trabajar:

var value = "[email protected]"; 
var pattern = /^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$/ 
var re = new RegExp(pattern); 
re.test(value); 

ya que siempre obtengo el patrón como una cadena en una variable, no he podido averiguar qué es lo que me falta aquí.

Respuesta

24

Las barras invertidas son caracteres especiales en las cadenas que deben ser escapado con otra barra invertida:

var value = "[email protected]"; 
var pattern = "^\\[email protected][a-zA-Z_]+?\\.[a-zA-Z]{2,3}$" 
var re = new RegExp(pattern); 
re.test(value); 
+0

omg yo sabía que era algo muy simple que me faltaba. ¡¡Gracias!! – shake

Cuestiones relacionadas