Javascript-Pattern-Prüfer

mit HTML5 – <input pattern=" "> (Siehe dazu Anmerkungen unten)

mit Javascript – if( String.match(/[0123]?\d\.[01]?\d\.?/) ){ /*wenn String dem Muster entspricht*/}

Patternstring:
 = String­format
Reaktivierung:
Teste String:
Reaktivierung:

Protokoll:

Prüfe, ob Dein Pattern blockt, was zu blocken, und durchläßt, was richtig ist!

Syntax in Kürze

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 34.45.56 67-78-56

?: 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

Praktische Pattern

[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.

Lesezeichen/Links

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.

Anmerkungen

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 ge­spei­chert. 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.