2011-01-04 15 views
18

Ich bin sicher, es ist etwas ziemlich klein, dass ich vermisse, aber ich konnte es nicht herausfinden.Javascript regulärer Ausdruck - String zu RegEx-Objekt

ich eine JavaScript-Variable mit dem RegexMuster in ihm haben, aber ich kann in der Lage sein scheinen, um es mit der Regex-Klasse funktioniert

folgendes ergibt immer 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); 

aber wenn ich kann es in einen Ausdruck richtige regex ändern (durch die Anführungszeichen zu entfernen und das Hinzufügen der / am Anfang und Ende des Musters), es beginnt zu arbeiten:

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

Da ich das Muster immer als String in einer Variablen erhalte, konnte ich nicht herausfinden, was mir hier fehlt.

Antwort

24

Umgekehrte Schrägstriche sind Sonderzeichen in Zeichenfolgen, die mit einem anderen Backslash geschützt werden müssen:

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 ich wusste, war es etwas ziemlich einfach, dass ich fehlte. Vielen Dank!! – shake

Verwandte Themen