Emanuel: Reguläre Ausdrücke

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 ?

  1. 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

    1. 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

    2. Danke für deine Hilfe.

      MFG Emanuel

  2. 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

    1. 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