Formulareingaben über Reguläre Ausdrücke validieren

Nutzbar ab: Version

Eingaben, die durch Benutzer auf der Webseite in Formularen gemacht werden, können neben den Standardvalidatoren auch über Reguläre Ausdrücke validiert werden.

Eingaben, die durch Benutzer auf der Webseite in Formularen gemacht werden, können neben den Standardvalidatoren auch über Reguläre Ausdrücke validiert werden. Dadurch haben Sie die Möglichkeit, jeden beliebigen Validator selbst zu definieren.

Neben den Standardvalidatoren, wie z.B. required, email oder isoDate stehen Ihnen auch folgende Validatoren, zur Prüfung über Reguläre Ausdrücke zur Verfügung:

  • pregMatch('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck entspricht und berücksichtigt dabei die Groß-/Kleinschreibung.
  • pregiMatch('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck entspricht, ohne dabei die Groß-/Kleinschreibung zu berücksichtigen.
  • preguMatch('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck entspricht, berücksichtigt dabei die Groß-/Kleinschreibung und behandelt die zu prüfenden Zeichenketten als UTF-8.
    (verfügbar ab CMS-Version 016.002.001.000)
  • pregiuMatch('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck entspricht, ohne dabei die Groß-/Kleinschreibung zu berücksichtigen und behandelt die zu prüfenden Zeichenketten als UTF-8.
    (verfügbar ab CMS-Version 016.002.001.000)
  • pregMatchOrEmpty('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck entspricht oder leer ist und berücksichtigt dabei die Groß-/Kleinschreibung
  • pregiMatchOrEmpty('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck entspricht oder leer ist, ohne dabei die Groß-/Kleinschreibung zu berücksichtigen
  • !pregMatch('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck nicht entspricht und berücksichtigt dabei die Groß-/Kleinschreibung
  • !pregiMatch('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck nicht entspricht, ohne dabei die Groß-/Kleinschreibung zu berücksichtigen
  • !preguMatch('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck nicht entspricht, berücksichtigt dabei die Groß-/Kleinschreibung und behandelt die zu prüfenden Zeichenketten als UTF-8.
    (verfügbar ab CMS-Version 016.002.001.000)
  • !pregiuMatch('REGEXP')
    Dieser Validator prüft, ob die Eingabe dem definierten Regulären Ausdruck nicht entspricht, ohne dabei die Groß-/Kleinschreibung zu berücksichtigen und behandelt die zu prüfenden Zeichenketten als UTF-8.
    (verfügbar ab CMS-Version 016.002.001.000)
  • callback:wMyProject::validateInput
    Dieser Validator prüft über Callback und die in wMyProject.php hinterlegte Funktion (im Beispiel validateInput) auf die dort definierten Regeln.

Weitere Validatoren:

  • isEqualInput(FELDNAME)
    Dieser Validator prüft, ob die Eingabe im Feld dem in Klammer angegebenen anderen Feld entspricht.
    Dies kann z.B. zum Abgleich von Feldern mit E-Mail Adressen oder Passwörtern nützlich sein.


Beispiele für Validatoren mit Regulären Ausdrücken

  • Prüfen, ob die Eingabe ein deutsches Datum ist
    pregMatch('^\d\d\.\d\d\.\d\d\d\d$')
  • Prüfen, ob die Eingabe leer oder ein deutsches Datum ist
    pregMatch('^(\d\d\.\d\d\.\d\d\d\d)?$')
  • Prüfen, ob die Eingabe mit http:// oder https:// beginnt
    pregMatch('^https?\:\/\/')
  • Prüfen, ob ein Feld nicht leer ist oder die Eingabe ohne http:// oder https:// beginnt
    !pregiMatch('^(|https?\:\/\/.*)$')
  • Prüfen, ob die Eingabe leer oder nur bestimmte Zeichen enthält (http(s):// daher nicht möglich)
    pregiMatch('^(|[a-zA-Z0-9\-\.\:]+)$')
  • Prüfen, ob der Satz "Ich stimme zu" eingegeben wurde
    pregiMatch('ich\s+stimme\s+zu')
  • Prüfen, ob die Eingabe keine Großbuchstaben enthält
    !pregMatch('[A-Z]')
  • Prüfen, ob die Eingabe kein Markup enthält
    !pregMatch('<|>')
  • Prüft, ob eine beliebige Ganzzahl (einmal oder beliebig oft) eingegeben wurde
    pregMatch('^\d+$')
  • Prüft, ob eine 4- oder 5-stellige Ziffer (z.B. Postleitzahl) eingegeben wurde
    pregMatch('^\d{4,5}$')
  • Prüft, ob die Eingabe leer oder eine 5-stellige Ziffer (z.B. Postleitzahl) ist
    pregMatch('^(|\d{4,5})$')
  • Prüfen, ob eine 13-stellige Ziffer eingegeben wurde
    pregiMatch('^\d{13}$')
  • Prüfen, ob eine Ganzzahl von 0 bis 4 eingegeben wurde
    pregMatch('^[0-4]$')
  • Prüfen, ob eine Ganzzahl mit Mindestwert 50 eingegeben wurde
    pregMatch('^(50|[5-9][0-9]|[1-9][0-9]{2,})$')
    (z.B. für Formularfelder nützlich, welche eine Mindestbestellwert für Gutscheine erfordern (z.B. 50 Euro))
  • Prüfen, ob eine Telefonnummer eingegeben wurde (z.B. +49 123-4567 oder +49 123 4567)
    pregMatch('^\+\d(?:[\s\-]?\d+)*$')
    Die Telefonnummer muß mit einem Plus-Zeichen beginnen und darf dann nur Zahlen, Leerzeichen und Bindestriche enthalten (mehrere aufeinanderfolgende Leerzeichen sind nicht erlaubt).
    Zu beachten ist, dass diese einfache RegEx-Überprüfung keine Aussagen darüber macht, ob die Telefonnummer tatsächlich existiert oder eine realistische Formatierung aufweist – sie prüft nur die allgemeine Struktur basierend auf den Vorgaben.
  • Prüfen, ob ein Name eingegeben wurde
    pregiuMatch('^[\p{L}\s'-]+$')
    Zu beachten ist, dass es spezielle Fälle oder kulturelle Unterschiede geben kann, die besondere Zeichen in Namen erlauben und somit individuell berücksichtigt werden müssen.

Sollten Sie einen speziellen Validator benötigen, helfen wir Ihnen gerne, diesen zu definieren.

Beispiele für Validatoren mit Regulären Ausdrücken im Formularquelltext

Beispiel 1: Wert darf im Feld nicht vorkommen

<!--
  Auszug aus kontakt/index.php:
  Versand ist nur möglich, wenn im Feld Nachname (lastname) nicht "mustermann" eingegeben wurde.
-->
...
<wd:fragment id="serverEventOnBeforeBuild" type="text.script">
<![CDATA[$this->elements['lastname']->validators[0]['type'] = "!pregiMatch('mustermann')";
$this->elements['lastname']->validators[0]['errorMessage'] = "Dieser Begriff darf nicht angegeben werden!";]]>
</wd:fragment>
...

Hinweis

Das Formular-Weblic® unterstützt ab Version 002.000.124.000 das Setzen eines eigenen Validators (als RegEx) über den Formulareditor zum Feld "Vorgaben".
z.B.: Eigener Validator: !pregiMatch('mustermann')