Bedeutung der Validatoren bei der Pflege textbasierter Daten
Veröffentlichungsdatum: 01. Dezember 2014
Änderungsdatum: 12. Oktober 2023
Dieser Artikel beschreibt, welche Validatoren bei der Pflege textbasierter Daten eingesetzt werden können. Dies kommt z.B. auch in den Pflegemasken des Objekt-Wizard zum Tragen.
Bei der Pflege von textbasierten Daten können die Felder auf gültige Eingaben überprüft werden. Hierzu kann innerhalb des web:text:start-Pflegekommentares das Attribut validator="" genutzt werden, welches folgende Möglichkeiten bietet.
Mögliche Werte des validator-Attributes, um eine korrekte Eingabe zu erzwingen:
- required
Das Feld muss einen Inhalt haben.
Sofern das Feld nicht befüllt wird (z.B. Überschrift), erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - int
Das Feld muss mit einem Integer befüllt sein (Ganzzahl).
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - http
Das Feld muss mit http:// beginnen.
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - path
Das Feld muss einen Pfad enthalten (mit Slash beginnend, z.B. /de/index.php).
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - email
Das Feld muss eine E-Mail Adresse enthalten (z.B. mail@example.com).
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - regExp
Das Feld muss dem angegebenen regulären Ausdruck entsprechen (z.B.: validator="/^\d{5}$/" prüft auf eine fünfstellige Zahl (z.B. Postleitzahl)).
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - customized
Hier haben Sie die Möglichkeit eine eigene Javacript-Callbackfunktion anzugeben. Definieren Sie den Validator mit leeren Klammern und ohne Semikolon, also zB. myFunction()
Die Deklaration der Callbackfunktion lautet in unserem Besipiel:
myFuction = function(currInput) {}; /*currInput ist das aktuelle Inputfeld*/
Sie können diese in der u.a. design.js einbauen.
Beachten Sie außerdem, dass Ajax-Aufrufe in der Callbackfunktion synchron ausgeführt werden.
Beispiele für den Validator mit regulären Ausdrücken
Nachfolgend Beispiele für einen Validator des Eingabefeldes:
- /^(\d{4})?$/
Über diesen regEx wird das Feld darauf geprüft, ob eine vierstellige Zahl (z.B. 0001)) enthalten ist oder das Feld leer ist.
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - /^\d{4}$/
Über diesen regEx wird das Feld auf eine vierstellige Zahl (z.B. 0001)) geprüft .
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - /^[\d]*$/
Über diesen regEx wird das Feld darauf geprüft, ob ausschliesslich Zahlen enthalten sind (z.B. 123456789)) oder das Feld leer ist.
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - /^[^a-zA-Z0-9_-]$/
Über diesen regEx wird das Feld darauf geprüft, ob andere Zeichen als Buchstaben, Zahlen, Bindestrich und Unterstrich enthalten sind (Prüfung auf Umlaute oder Sonderzeichen, z.B. Tätigkeit oder "Titel")).
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - /^(\d+,\d\d)$/
Über diesen regEx wird das Feld darauf geprüft, ob das Feld eine per Komma getrennte Zahl mit zwei Nachkommastellen enthält (z.B. 29,99). Dies wird z.B. für Preisangaben im Mini-Shop Weblic® bei den Produkten verwendet. - /^(|.*\.(gif|jpg|jpeg|png))$/i
Über diesen regEx wird das Feld darauf geprüft, ob eine Bilddatei enthalten ist.
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - /^(|[a-z0-9]{3}|[a-z0-9]{6})$/i
Über diesen regEx wird das Feld darauf geprüft, ob das Feld entweder leer ist oder aus einer dreistelligen Zahlen-/Buchstabenkombination oder aus einer sechsstelligen Zahlen-/Buchstabenkombination besteht (Prüfung auf Farbwerte (ohne Hash-Zeichen), z.B. e0e0e0 oder fff für die Farbwerte #e0e0e0 bzw. #fff)).
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann. - /^(|http\s?\:\/\/.*\.(gif|jpg|jpeg|png))$/i
Über diesen regEx wird das Feld darauf geprüft, ob das Feld entweder leer ist oder mit http:// bzw. https:// beginnt, dann eine beliebige Zeichenkette enthält (bitte diesen Bereich an Ihre Bedürfnisse anpassen) und mit einer der genannten Bild-Dateiendungen endet, z.B. http://domain.dd/assets/img/bild-blau.jpg)).
Sofern dies nicht der Fall ist, erfolgt eine Hinweismeldung, die über das errorMessage-Attribut definiert werden kann.
Die Validierung bei Textpflegefeldern erfolgt in Javascript. Die umschliessenden Slashes sind für die Übergabe an die Engine von Weblication® notwendig.
Beispiel: Auszug aus einem XSL-Template mit gesetztem Validator
...
<!--web:text:start editor="input" validator="required" errorMessage="" --><xsl:value-of select="wd:fragment[@id = 'text']/text()"/><!--web:text:stop-->
...FAQs
- Welche Validatoren können bei der Pflege textbasierter Daten eingesetzt werden?
- Über das Attribut <code class="codeInline">validator=""</code> innerhalb des <code class="codeInline">web:text:start</code> Pflegekommentars können verschiedene Validierungen für Felder definiert werden. Dazu gehören u. a. <code class="codeInline">required</code>, <code class="codeInline">int</code>, <code class="codeInline">http</code>, <code class="codeInline">path</code>, <code class="codeInline">email</code>, <code class="codeInline">regExp</code> und <code class="codeInline">customized</code>.
- Wie funktioniert der Validator <code class="codeInline">required</code> in der Textpflege?
- Mit <code class="codeInline">validator="required"</code> wird erzwungen, dass das Feld einen Inhalt haben muss. Wenn das Feld nicht befüllt ist (z.B. bei einer Überschrift), erfolgt eine Hinweismeldung, die über das Attribut <code class="codeInline">errorMessage</code> definiert werden kann.
- Wofür ist der Validator <code class="codeInline">int</code> gedacht?
- Mit <code class="codeInline">validator="int"</code> muss das Feld mit einer Ganzzahl (Integer) befüllt sein. Ist keine gültige Ganzzahl vorhanden, erscheint eine Hinweismeldung, die über <code class="codeInline">errorMessage</code> gesteuert wird.
- Wie validiert der Validator <code class="codeInline">http</code> eine Eingabe?
- Mit <code class="codeInline">validator="http"</code> muss das Feld mit <code class="codeInline">http://</code> beginnen. Wenn diese Bedingung nicht erfüllt ist, wird eine Hinweismeldung ausgegeben, konfiguriert über <code class="codeInline">errorMessage</code>.
- Was prüft der Validator <code class="codeInline">path</code>?
- Mit <code class="codeInline">validator="path"</code> muss das Feld einen Pfad enthalten, der mit einem Slash beginnt (z.B. <code class="codeInline">/de/index.php</code>). Bei Nicht-Erfüllung wird eine Hinweismeldung über <code class="codeInline">errorMessage</code> angezeigt.
- Wofür steht der Validator <code class="codeInline">email</code>?
- Mit <code class="codeInline">validator="email"</code> muss das Feld eine E-Mail-Adresse enthalten (z.B. <code class="codeInline">mail@example.com</code>). Wenn nicht, wird eine Hinweismeldung über <code class="codeInline">errorMessage</code> ausgegeben.
- Wie arbeitet der Validator <code class="codeInline">regExp</code> bei der Textpflege?
- Mit <code class="codeInline">validator="/DEIN_REGEXP/"</code> wird geprüft, ob der Feldinhalt exakt dem angegebenen regulären Ausdruck entspricht. Bei Nichttreffer erfolgt eine Hinweismeldung, die über <code class="codeInline">errorMessage</code> definiert werden kann. Beispiele im Artikel zeigen u. a. Prüfungen auf Postleitzahlen, Zahlenformate oder Bild-Dateinamen.
- Wie kann ein eigener Validator mit <code class="codeInline">customized</code> erstellt werden?
- Mit <code class="codeInline">validator="customized"</code> kann eine eigene JavaScript-Callbackfunktion genutzt werden. Dafür werden leere Klammern ohne Semikolon definiert, z.B. <code class="codeInline">myFunction()</code>. Die Callbackfunktion erhält als Parameter das aktuelle Inputfeld (<code class="codeInline">currInput</code>). In der Callbackfunktion sind Ajax-Aufrufe synchron auszuführen.
- Warum sind bei <code class="codeInline">regExp</code> im Validator Slashes wichtig?
- Der Artikel erklärt, dass die umschließenden Slashes für die Übergabe an die Engine von Weblication® notwendig sind. Der Validator wird damit an die Engine korrekt übergeben.
- Wie kann der Validator <code class="codeInline">required</code> zusammen mit <code class="codeInline">errorMessage</code> im XSL-Template gesetzt werden?
- Beispiel aus dem Artikel (Auszug): <pre><code class="codeBlock" style="color: #000000">xsl <!--web:text:start editor="input" validator="required" errorMessage="" --><xsl:value-of select="wd:fragment[@id = 'text']/text()"/><!--web:text:stop--> </code></pre> Damit wird für das Feld eine Pflichtbefüllung erzwungen; die Meldung bei Verstoß wird über <code class="codeInline">errorMessage</code> beschrieben.
- Welche typischen Einsatzfälle werden in den Beispielen für <code class="codeInline">regExp</code> genannt?
- Im Artikel werden u. a. folgende Validierungsfälle gezeigt: - vierstellige Zahlen oder leeres Feld (<code class="codeInline">/^\d{4}$/</code>, <code class="codeInline">^(\d{4})?$</code>) - nur Zahlen (oder leer) (<code class="codeInline">/^[\d]*$/</code>) - keine Buchstaben/Zahlen/Bindestrich/Unterstrich (z.B. Prüfung auf Sonderzeichen/Umlaute) (<code class="codeInline">/^[^a-zA-Z0-9_-]$/</code>) - Preisformat mit Komma und zwei Nachkommastellen (z.B. <code class="codeInline">29,99</code>) (<code class="codeInline">/^(\d+,\d\d)$/</code>) - Bilddateiendungen prüfen (z.B. gif/jpg/jpeg/png) inklusive optionaler Leerwerte - Farbwerte ohne Hash-Zeichen (z.B. <code class="codeInline">e0e0e0</code> oder <code class="codeInline">fff</code>) sowie URL-Validierung für Bildlinks