DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
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>

 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine Links vorhanden

  Erfasst am: 17.05.2001
  Gültig bis: 16.06.2001
11 Ratings
Bewertung: 34,5%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG