DevTrain

Autor: Hannes Preishuber

Mit Java Script und Regular Expression eine eMail Adresse am Client prüfen

In einem vorigen Artikel habe ich bereits über die Syntax Elemente von Regular Expressions geschrieben. Nachdem ich mich jetzt einige Tage mit ASP+ porgrammierung und den dortigen Validators beschäftigt habe, möchte ich erklären wie mit Java Script am Client komfortabel eine Validierung vorgenommen werden kann. Eines der größten Problem ist immer wie verhindere ich Fake eMail Adressen?
Nun dafür kann man sowohl am Server als auch am Client nette Scripts schreibn. Aber mit Regular Expressions gehts einfacher!

Zunächst die wichtigsten Funktionen. Die Erklärung dazu kann ein ganzes Buch füllen und deshalb verzichte ich an dieser Stelle darauf.

Um eine Objekt zu erstellen verwenden RegExp

RegExp

var reg = new RegExp("Hannes");

compile

regexp.compile("PATTERN", ["g"|"i"|"gi"])

exec

regexp.exec(str)

test

regexp.test(str)

match

str.match(regexp)

replace

str.replace(regexp, replaceStr)

split

str.split(regexp)

search

str.search(regexp)


Nun aber zur Tat. Zunächst wir ein INPUT ausgelesen und einer Variable zugewiesen. Der Ausdruck zum vergleichen wird per Test() gegen die email Adresse geprüft.

var reg = new RegExp("[w-]+[w-]*)+@([w]+.)+[w-]+");
if (reg.test(str))

else
  alert("ungültige eMail Adresse");


Das Script wird nicht in allen Browsern fehlerfrei laufen. Mit etwas Mühe und Fehlerbehandlung lässt sich aber ein universelles aber kompliziertes Script erstellen, das jeder Browser fressen sollte.

<SCRIPT LANGUAGE="JavaScript">
<!--

function CheckForm(form) {
  var email = form.email;
  var str = email.value;
  if (window.RegExp) {
    var strReg1 = "(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)";
    var strReg2 = "^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$";
    var reg1 = new RegExp(strReg1);
    var reg2 = new RegExp(strReg2);
    if (!reg1.test(str) && reg2.test(str))
      return true;
    email.focus();
    email.select();
    return false;
  } else {
    if(str.indexOf("@") >= 0)
      return true;
    email.focus();
    email.select();
    return false;
  }
}

// -->
</SCRIPT>
<FORM METHOD="POST" ACTION="mailto:test@yourdomain.de"
      ENCTYPE="text/plain"
      onSubmit="return CheckForm(this)">
e-mail:<BR><INPUT TYPE="text" NAME="email" SIZE="40"><BR>

<INPUT TYPE="submit" VALUE="senden">
</FORM>

 


Erfasst am: 17.05.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=453
© Copyright 2003 ppedv AG - http://www.ppedv.de