2011-01-04 16 views
18

Sono sicuro che è qualcosa di piuttosto piccolo che mi manca ma non sono stato in grado di capirlo.Espressione regolare Javascript - stringa su oggetto RegEx

Ho un variabile JavaScript con il pattern regex in essa, ma non posso sembrano essere in grado di farlo funzionare con la classe RegEx

il seguente sempre restituisce false:

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

ma se cambio in una vera e propria espressione regex (rimuovendo le virgolette e aggiungere il / all'inizio e alla fine del modello), si inizia a lavorare:

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

poiché ottengo sempre il modello come una stringa in una variabile, non sono stato in grado di capire cosa mi manca qui.

risposta

24

barre inverse sono caratteri speciali nelle stringhe che devono essere sfuggito con un altro backslash:

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 sapevo che era qualcosa di molto semplice che mi mancava. Grazie!! – shake

Problemi correlati