![]() |
|
|||||
Diese Beschreibung ist noch nicht sehr genau, soll für unsere Zwecke aber ausreichen. Sie verwendet verschiedene Typen von Charakterisierungen. AnkerDie Wendung »Am Anfang« verankert einen String an einer bestimmten Position, nämlich ganz am Anfang. ASP.NET bietet zwei Anker. ^ markiert den Anfang des Strings. $ markiert das Ende des Strings. QuantifizierungenDie Wendung »mindestens zwei Zeichen« verwendet einen quantifizierenden Ausdruck. Für solche quantifizierenden Ausdrücke bietet ASP.NET eine ganze Reihe von Operatoren. Zunächst schreibt man das Zeichen beziehungsweise die Zeichengruppe hin und fügt den quantifizierenden Ausdruck an. Dabei bedeutet: ? gar nicht oder einmal, + einmal oder mehrmals, * gar nicht, einmal oder mehrmals, {n} genau n-mal, {n,} mindestens n-mal, {n,m} mindestens n-mal, höchstens m-mal. ZeichenklassenInnerhalb von E-Mail-Adressen sind keine Sonderzeichen wie die deutschen Umlaute erlaubt. Wenn also in der umgangssprachlichen Beschreibung von »einigen Zeichen« die Rede ist, dann ist hier eine so genannte Zeichenklasse gemeint. ASP.NET bietet folgende Möglichkeiten für die Definition von Zeichenklassen. . Entspricht allen Zeichen außer dem Zeilenumbruchzeichen \n [aum] Entweder ein a oder ein u oder ein m. Die erlaubten Zeichen werden also in eckigen Klammern aufgelistet. [^aum] Kein a und auch kein u und auch kein m. Nicht erlaubte Zeichen werden aufgelistet. [0-9a-fA-F] Eine Ziffer oder ein Buchstabe von a bis f, klein- oder großgeschrieben. Für einige häufig gebrauchte Zeichenklassen gibt es außerdem vordefinierte Kürzel: \w für ein beliebiges Wortzeichen (d. h. keine Satzzeichen, Leerzeichen etc.), \W für ein beliebiges Nichtwortzeichen, \s für ein Leerraumzeichen, \d für eine Dezimalziffer. Die .NET-Dokumentation bietet noch detailliertere Informationen zu den Zeichenklassen. Mit Hilfe dieser Werkzeuge lässt sich eine E-Mail-Adresse annäherungsweise in einen regulären Ausdruck fassen:
Damit haben Sie einen regulären Ausdruck gebildet. Sobald in der umgangssprachlichen Beschreibung von »Zeichen« die Rede ist, verwendet dieser reguläre Ausdruck den Punkt als Zeichenklasse. Diese Zeichenklasse ist eigentlich zu umfassend, weil sie beispielsweise auch Sonderzeichen enthält. Andererseits hat das den Vorteil, dass Sie nicht versehentlich eine gültige E-Mail-Adresse als ungültig verwerfen, nur weil sie ein Zeichen enthält, das in der Zeichenklasse \w beispielsweise nicht enthalten ist, in E-Mail-Adressen aber erlaubt ist. Der Punkt, ein Bindestrich, ein Unterstrich und weitere Zeichen dürfen auch in E-Mail-Adressen vorkommen.
Aber stimmt der Ausdruck auch? Um ihn zu testen, wenden Sie ihn in einem RegularExpression-Steuerelement an.
Tabelle 7.5 Vorrang der Operatoren in regulären Ausdrücken. Von oben nach unten abnehmender Vorrang 7.6.2 Eingaben mit regulären Ausdrücken überprüfen
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Attribut | Wert |
|---|---|
| id | Eindeutiger Bezeichner |
| ControlToValidate | id des zu überprüfenden Steuerelements |
| ValidationExpression | Regulärer Ausdruck |
| ErrorMessage | Fehlermeldung für das ValidationSummary-Steuerelement |
| Text | Fehlermeldung |
| Display | None | Static (Default) | Dynamic |
| EnableClientScript | true | false |
| ForeColor | Farbangabe |
| BackColor | Farbangabe |
| runat | Server |
Tabelle 7.6 Attribute des RegularExpressionValidator-Steuerelements

Hier klicken, um das Bild zu Vergrößern
Abbildung 7.8 Mit einem regulären Ausdruck können Sie beispielsweise E-Mail-Adressen überprüfen.
<!-- regular01.aspx -->
<% @Page debug="true" %>
<html><head>
<title>RegularExpression-Validator</title>
</head><body>
<h3>RegularExpression-Validator</h3>
<p>Bitte geben Sie eine E-Mail-Adresse ein:</p>
<form runat="server">
<input type="text" runat="server" id="txtEMail">
<input type="submit" value=" OK ">
<asp:RegularExpressionValidator runat="server"
ControlToValidate="txtEMail"
ValidationExpression="^.+@.+\..{2,}"
Text="Bitte überprüfen Sie die E-Mail-Adresse." />
</form></body></html>
| Achtung Wer nicht nur eine ungefähre Überprüfung vornehmen, sondern ganze Arbeit leisten will, muss den Standard für die Gestaltung von E-Mail-Adressen komplett umsetzen. Das ist allerdings keine triviale Aufgabe, weil hier zahlreiche Ausnahmen möglich sind. Der momentan gültige Standard für das »Internet Message Format« ist definiert im RFC 2822, zu finden unter anderem hier: http://www.faqs.org/rfcs/rfc2822.html. |
Im Abschnitt 7.4.2, Zwei Eingabefelder miteinander vergleichen, wurde ein Beispiel entwickelt für ein Formular, das vom Anwender die doppelte Eingabe eines Passwortes verlangt. Dieses Beispiel soll jetzt noch um die Bedingungen ergänzt werden, dass das Passwort mindestens acht Zeichen lang sein soll und nur Ziffern oder Buchstaben enthalten darf. Außerdem sollen keine Sonderzeichen und Umlaute erlaubt sein.
Den passenden regulären Ausdruck erstellen Sie, in dem Sie zunächst eine eigene Zeichenklasse mit den gültigen Zeichen erstellen und anschließend eine quantifizierende Beschreibung anhängen. Damit ergibt sich dieser Ausdruck:
[0-9a-zA-Z]{8,}
regular02.aspx enthält das komplette Formular. Das RegularExpressionValidator-Element wurde hinzugefügt und der Text der Fehlermeldung wurde ergänzt, wie es in Abbildung 7.9 zu sehen ist.
<!-- regular02.aspx -->
<% @Page debug="true" %>
<html><head>
<title>Passworteingabe</title>
</head><body>
<h3>Passworteingabe</h3>
<p>Bitte geben Sie Ihr Passwort zweimal ein.
Das Passwort muss mindestens 8 Zeichen lang sein und
darf nur die Buchstaben von a bis z in Groß- oder
Kleinschreibung und Ziffern enthalten.
Umlaute und Sonderzeichen sind nicht erlaubt.</p>
<form runat="server">
Ihr Passwort:<br>
<input type="password" id="pass1" runat="server"><br>
Nochmal Ihr Passwort: <br>
<input type="password" id="pass2" runat="server"><br>
<input type="submit" value=" OK " runat="server"><br>
<br>
<asp:RequiredFieldValidator runat="server"
ControlToValidate="pass2" />
<asp:CompareValidator runat="server"
ControlToValidate="pass2"
ControlToCompare="pass1"
Operator="Equal" />
<asp:RegularExpressionValidator runat="server"
ControlToValidate="pass1"
ValidationExpression="[0-9a-zA-Z]{8,}" />
<asp:ValidationSummary runat="server"
HeaderText="Bitte geben Sie zwei identische
Passwörter ein und beachten Sie die
Konventionen für Länge und erlaubte
Zeichen."
ShowSummary="true" />
</form></body></html>

Hier klicken, um das Bild zu Vergrößern
Abbildung 7.9 Der Einsatz vier verschiedener Validierungssteuerelemente stellt eine korrekte Eingabe sicher.
| << zurück |
| ||||||||||||
| ||||||||||||
| ||||||||||||
| ||||||||||||
| ||||||||||||
| ||||||||||||
Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.