Reguläre Ausdrücke
Emanuel
- javascript
0 MudGuard0 Christian Kruse0 MudGuard
Hallo,
lerne gerade JavaScript und bin auf Reguläre Ausdrücke gestoßen, hab jetzt folgendes auspropiert:
<script language="JavaScript">
<!--
var RegExpEmail = /\w*[@]\w*[.]\D{2,3}/;
var email = "test.test@xyz.at";
var email2 ="testk#@xyz.at";
var email3 = "test@#xyz.at";
if (RegExpEmail.test(email)) {
document.write(email + " ist gültig<br>");
}
if (RegExpEmail.test(email2)) {
document.write(email2 + " ist gültig<br>");
}
if (RegExpEmail.test(email3)) {
document.write(email3 + " ist gültig<br>");
}
//-->
</script>
Intressant find ich die Ausgabe:
test.test@xyz.at ist gültig
testk#@xyz.at ist gültig
Kann mir jemand erklären warum das so ist ?
Hallo,
lerne gerade JavaScript und bin auf Reguläre Ausdrücke gestoßen, hab jetzt folgendes auspropiert:
<script language="JavaScript">
<!--
var RegExpEmail = /\w*[@]\w*[.]\D{2,3}/;
was ist mit tld die mehr als 3 Buchstaben haben?
.info, .museum ...
was ist mit email-Adressen, die anstelle des hostnamens die Ip haben?
var email = "test.test@xyz.at";
var email2 ="testk#@xyz.at";
var email3 = "test@#xyz.at";
if (RegExpEmail.test(email)) {
document.write(email + " ist gültig<br>");
}
if (RegExpEmail.test(email2)) {
document.write(email2 + " ist gültig<br>");
}
if (RegExpEmail.test(email3)) {
document.write(email3 + " ist gültig<br>");
}
//-->
</script>
Intressant find ich die Ausgabe:
test.test@xyz.at ist gültig
testk#@xyz.at ist gültig
Kann mir jemand erklären warum das so ist ?
Ganz einfach: Dein Ausdruck verlangt, daß vor dem @ null oder mehr Buchstaben sind.
Dein Ausdruck verlangt nicht, daß er am Textanfang matchen muß, daher findet er zwischen # und @ null oder mehr Buchstaben...
Abgesehen davon, ich bin mir nicht sicher, ob # im local part überhaupt verboten ist...
/^\w*[@]\w*[.]\D{2,6}$/
läßt schon wesentlich mehr (formal) gültige Adressen durch (aber nicht alle) und führt bei Deiner 2. email zu dem von Dir gewünschten Ergebnis (wie gesagt, ob das korrekt ist oder nicht, weiß ich momentan nicht).
Andreas
Hi Andreas,
Abgesehen davon, ich bin mir nicht sicher, ob # im local part überhaupt verboten ist...
Nein, vor dem @ ist jedes Zeichen zulässig (zumindest theoretisch, ober der Server damit etwas anfangen kann sei dahingestellt ;))
Grüße aus Oberfranken
Sven
Danke für deine Hilfe.
MFG Emanuel
Hallo,
lerne gerade JavaScript und bin auf Reguläre Ausdrücke gestoßen, hab jetzt
folgendes auspropiert:
[...]
var RegExpEmail = /\w*[@]\w*[.]\D{2,3}/;
http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html
Gruesse,
CK
Hi,
http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html
Wobei zu beachten ist: dort werden nur TLDs mit max. 5 Zeichen zugelassen (.museum kommt also nicht durch...)
Und es ist durchaus vorstellbar, daß weitere noch längere tld eingeführt werden...
Außerdem werden auch dort emails mit ip-adresse als Server-Teil abgeblockt... (gibt es zwar nur selten, aber es gibt sie)
Andreas