DevTrain .NET Developers Home. Das Community Portal für ASP.NET, Visual Basic, C#
 
  Login Status: Hallo   Anmelden  Suche:  
Navigationslinks überspringen
Startseite
Artikel
Blogs
Foren
ClubClub erweitern

 
Ihre Optionen
Save
Mail
Print
Rate
 
Advertising
  DevTrain Camp – Schneller zum .NET 4.0 Developer!

 
Navigationslinks überspringen
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>

 


Diskutieren Sie in den Foren

ppedv AG - 5 Sterne Trainings