RegExp Emailadresse vallidieren

kle-ben

Erfahrenes Mitglied
Hi,
ich hab ein Problem mit einem regulären Ausdruck.
Bzw. ein Problem und eine Frage.

Mein regulärer Ausdruck :
Code:
var expr = new RegExp( ^[a-zA-Z0\d][a-zA-Z\d_-\.]*[a-zA-Z\d]|[a-zA-Z\d]+@[a-zA-Z\d][a-zA-Z\_-]*[a-zA-Z\d]|[a-zA-Z\d]+.[a-zA-Z]{2,4}$  );
soll eine Emailadresse validieren.

Solange diese Zeile nicht in meiner Funktion steht funktioniert alles.
Wenn sie drinnen steht wird die ganze Funktion scheinbar nicht ausgeführt.
Sind da irgendwelche Syntaxfehler in meinem Ausdruck?

Und wenn ich meine Emailadresse mit diesem Audruck nun validieren will,
welche von den ganzen Regexp-Funktionen muss ich dann benutzen?
Hab nur welche gefunden die mir Teilstrings oder anderes zurückgeben...
Ich will aber nur ein einfaches true oder false haben.
 
Habs jetzt nicht genau angeschaut, aber mit dem hier teste ich meine Emails und es funktioniert eigentlich wunder.

Code:
reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                           '(\\@)([a-zA-Z0-9\\-\\.]+)'+
	                   '(\\.)([a-zA-Z]{2,4})$');
						
result = reg.test(value);
 
Zuletzt bearbeitet:
Danke,
es funktioniert nun teilweise.
@Bogat:
Wieso machst du vor die Sonderzeichen immer zwei Slashes?

Der vorder Teil meines Ausdrucks sieht jetzt so aus : ( vor dem @ )
Code:
^[a-zA-Z0-9][a-zA-Z0-9\\-\\.\_]+[a-zA-Z0-9]|[a-zA-Z0-9]+
.a@blbla.de wird als gültig erklärt a.@ aber nicht.
die Emailadressen beginnen oder enden ja nicht mit einem Sonderzeichen.
wieso darf bei diesem Ausdruck eine Emailadresse mit Sonderzeichen beginnen?

Benny
 
....vor die Sonderzeichen immer zwei Slashes?

new RegExp() ist eine (Konstruktor)-Funktion, erst ihr Ergebnis ist ein regulärer Ausdruck.
Die übergebenen Parameter sind dabei Strings, wozu das JS-Manual folgendes sagt:
When using the constructor function, the normal string escape rules (preceding special characters with \ when included in a string) are necessary. For example, the following are equivalent:
Code:
re = new RegExp("\\w+")
re = /\w+/
das Backslash ist auch ein "special character"...muss dort somit escaped werden.
Also :das 1.Backslash escaped das 2. Backslash, und das 2. Backslash escaped das w
 

Neue Beiträge

Zurück