Javascript  Ulrich Hirschmann 4.98
 

Regular Expressions (für Profis)

Regular Expressions (Standardausdrücke) sind Steuerstrings mit denen eingegebene Texte überprüft werden können.
Diese Steuerstrings (pattern) werden duch /pattern/ begrenzt.
 
Methoden
<html><head> 
<title>Javascript</title> 
</head><body><h1>Regular1</h1> 
<script><!-- 
 var x="man oh@asn-linz.ac.at"; 
 
 //1.Versuch 
 var pattern=/@/; 
 //2. Versuch 
 //var pattern=/X/; 
 
var ma=x.split(pattern); 
 document.write("<p><b>Split:</b> <br>"); 
 for(var i=0;i<ma.length;i++) 
 document.write(ma[i]+"<br>"); 

 ma=x.search(pattern); 
 document.write("<p><b>Search:</b> "+ma); 

 ma=x.match(pattern); 
 document.write("<p><b>Match:</b> "+ma); 

 ma=x.replace(pattern,"5"); 
 document.write("<p><b>Replace:</b> "+ma); 

 ma=pattern.exec(x); 
 document.write("<p><b>Exec:</b> "+ma); 

 ma=pattern.test(x); 
 document.write("<p><b>Test:</b> "+ma); 

//--></script> 
</body></html>

 

Eine Pseudo - E-Mail - Adresse zum Testen. 
 

Zuerst suchen wir nach dem @-Zeichen. 

Im zweiten Durchlauf des Programmes suchen wir nach X. 

Die Methode split einer Stringvariablen x liefert ein Array zurück in dem die Teile des Strings x nach pattern getrennt eingetragen wurden. 

Das Array wird ausgegeben. 

x.search liefert die Position von pattern oder -1 wieder. 
 

x.match liefert ein Array oder null zurück. 


x.replace(pattern,"5"); ersetzt pattern durch "5"
 

Die Methode exec des Steuerstrings (pattern) liefert ein Array oder null zurück. 
 
 
Die Methode test des Steuerstrings (pattern) liefert true oder false zurück. 
 
 

 
Beispiel1   Beispiel2
 

 
Patterns
<html><head><title>Javascript</title> 
<script><!-- 
var name=false; 
var datum=false; 

function teste(t) 

 name=true; 
 var text=t.value; 
 var pattern=/ /;          //Nach Leerzeichen suchen 
 var r1=text.match(pattern); 
 
 pattern=/[A-Z]/;           //Nach Großbuchstaben suchen 
 var r2=text.match(pattern); 

 pattern=/^[A-Z]/;          //1.Buchstabe ein Großbuchstaben? 
 var r3=text.match(pattern); 

 if(r1==null || r2==null || r3==null) 
 { 
  alert("Ihre Eingaben waren nicht richtig!\n z.B.: Max Müller"); 
  document.Adresse.n_in.value=""; 
  name=false;    //Falsche Eingabe 
 } 

function dattest(t) 
{ datum=true; 
 var r=true; 
 var text=t.value; 
 var pattern=/[A-Za-z]/;              //Nach Buchstaben suchen 
 var r2=text.match(pattern); 
 if(r2!=null)r=false;                  //Falls gefunden -> Fehler! 

 pattern=/\./;                      //Nach Punkt in Array auftrennen 
 var da=text.split(pattern); 
 
 var tag=da[0]; 
 var monat=da[1]; 
 var jahr=da[2]; 
 if(tag<0 || tag>31)r=false; 
 if(monat<0 || monat>12)r=false; 
 if(jahr<1900 || jahr>2000)r=false; 
 if(r==false) 
 { 
 alert("Falsche Datumseingabe!\n z.B.: 1.3.1999"); 
  document.Adresse.d_in.value=""; 
  datum=false; 
 } 

function fertig() 

 if(datum==true && name==true)alert('Brav eingegeben!'); 

//--></script></head><body><h1>Regular2</h1> 
<form name="Adresse"> 
Geben Sie bitte Ihren Namen ein:<br> 
<input type="text" name="n_in" size=40 onChange="teste(this);"> 
<p>Geben Sie bitte Ihr Geburtsdatum ein:<br> 
<input type="text" name="d_in" size=40 onChange="dattest(this);"> 
<p><input type="button" value="Fertig!" onClick="fertig();"> 
</form></body></html>

 
Globale Variablen zur Überprüfung ob Name und Datum richtig eingegeben wurden. 

Funktion zur Überprufung der Namenseingabe. 
 

t ist die Referenz auf das Textfeld "n_in". Durch text=t.value; wird der Variablen text der Inhalt dieses Textfeldes zugewiesen. 
 
 

Durch [] werden Patterns für bestimmte Zeichen gebildet. /[A-Z]/ sucht dann nach Großbuchstaben. 

^prüft das 1.Zeichen im Text mit dem folgenden Pattern. 
 

Ist eine der drei Überprüfungen falsch, wird die Meldung ausgegeben. 
 
 
 
 
 
 

Funktion zur Überprufung der Datumseingabe. 

Der Rückgabewert wird auf true gesetzt. 
 
Ein Pattern für Groß- und Kleinbuchstaben wird erstellt. 
 
Falls ein Buchstaben gefunden wurde, war die Eingabe falsch! 
 
 /\./  Nach Punkte als Trennzeichen wird die Eingabe auf ein Array verteilt. 
 
Die einzelnen Arrayelemente werden Variablen zugewiesen. 
 
 
Überprüfung ob die Variabeln im gültigen Bereich sind. 
 
 
Bei einem Fehler Meldung ausgeben. 
 
 
Globale Variable datum auf false setzen. 
 
 
 
 
Funktion die, falls Name und Datum richtig eingeben wurden, eine Meldung ausgiebt. 
 
 
 
 
Eingabeform 
 
 
 
 


 

 
Beispiel

Genauere Information zu den Patterns bietet:  http://developer.netscape.com/docs/manuals/communicator/jsguide4


Übung: Ändere obiges Skript so, daß auch noch Geburtsdaten nach dem Jahr 2000 möglich sind.
 

Das Beispiel 3 verwendet statt dem normalen Schalter einen Submit-Schalter, so daß das Formular dann auch wirklich abgeschickt werden kann.
 

 
Javascript  Ulrich Hirschmann 4.98