mit HTML5 – <input pattern=" "> (Siehe dazu Anmerkungen unten)
mit Javascript – if( String.match(/[0123]?\d\.[01]?\d\.?/) ){ /*wenn String dem Muster entspricht*/}
| Patternstring: | = Stringformat | |
| Reaktivierung: | ||
| Teste String: | ||
| Reaktivierung: | ||
Protokoll: |
Prüfe, ob Dein Pattern blockt, was zu blocken, und durchläßt, was richtig ist!
Statt pattern-string im <input type="text" pattern="pattern-string" />
\ (Backslash) = Maske, z. B. \w \. \$
( ) { } [ ] ? + - * ^ $ brauchen Maske=\
^ $ = Anfang und Ende (nicht erforderlich)
( ) = zusammengehörige Ausdrücke
^[0-9]{5}$ = wie (ohne) [0-9]{5}
\w (word), 1 Zeichen 0-9, A-Z, _ und a-z
\W (groß W) = wie [^a-zA-Z_0-9] = §$%&!:#...
\d (digit), einstellige Ziffer
\d\d\d, dreistellige Ziffer
\D (groß) = nicht Zahl = [^0-9] oder [^\d]
\n = Zeilenumbruch (nicht nötig bei input-Pattern)
. (der Punkt) = beliebiges Zeichen; aber \. = Punktzeichen
\s = Leerzeichen (whitespace)
\S (groß S) = nicht Leerzeichen = [^ ] od. [^\s]
\t = Tabulator
wort = ganzer Begriff
[ABCÖö] = 1 Zeichen innerhalb [ ]
[ABC][wxz] 2 Zeichen, je [ ] ein Z.
[a-z] 1 Z. von bis [a-z]
[12-69] eine Zahl, außer 7 und 8
[^ÄÖÜ] nicht Ä, Ö, Ü
[A-Z][a-z][a-z] Wort m. 3 Buchst.
{ } für Wiederholung
[0-9]{6} zwingend 6-stellige Zahl
{min,max} {2,} min ist Pflicht
{3,17} min 3 max 17 Wdhlg
[0-9]* keines od. beliebig viele
[0-9]? einmal od. keinmal
[0-9]+ mindestens einmal
an|aus = an ODER aus
(ma){3} = mamama
(A(bc){2}){2} = A(bc)(bc)A(bc)(bc) = AbcbcAbcbc
(\w)(\w)\1\2 \1 = 1. Klammer, \2 = zweite
\d{2}( |\.|-)?\d{2}\1\d{2} = 122334
?: Klammer ausschließen, z. Bsp. (?:\w)
(\w)(?:\w)(\w)(\w)\2 die maskierte 2 weist auf 3. Klammer
(?= ) bestimmt nachfolgenden Ausdruck
(?=.{5}$)\d+\.\d+ (5 beliebg. Z.) Zahlen mit Punkt = n.nnn, nn.nn oder nnn.n
(?! ) nachfolg. Ausdr. nicht mögl.
(?![.\n]) = kein Zeilenumbruch (input-Feld braucht kein Zumbr.-Pattern)
(?!02)(0[1-9]) = 00 bis 09, Nicht 02
[0-9]+(\.[0-9]{2})?\$ = Geld (30$ oder 20.00$)
[0-9]+(,[0-9]{2})?€ = Geld (30€ oder 20,00€)
Paßwort (?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.* ).{8,13} = MUSS 8-13 Z. lang, Gr.-B., Kl.-B., Zahlen, Sonderz., aber kein Leerz. enthalten
IBAN [A-Z]{2}\d{2}\s?(\d{4}\s?){4}\s?\d{2} mit Leerz. ad lib.
http://pattern.tfcpc.de/, ein Tutorial mit Beispielen
https://regexcrossword.com/, Pattern lernen mit einer Art Kreuzworträtsel,
RegExp bei selfhtml, auch bei Mozilla Developer Network
String.match() durchsucht eine Zeichenkette mit Hilfe eines regulären Ausdrucks und liefert Zeichenfolgen, auf die der reguläre Ausdruck passt, zurück.
04.11.2016: Script funktioniert mit folgenden Browsern: Opera, Firefox, Chrome. Der Safari prüft noch keine pattern="" aus einem <input>. Cookies müssen möglich sein, denn es werden sessionStorage-Daten gespeichert. Im Firefox muß dom.storage.enabled (=true) sein (ist heute Standard). In den mobilen Versionen aller Browser funktioniert die Pattern-Prüfung im <input> noch nicht.