[ Input Pattern ]

Formularfelder validieren

 Input Pattern Beispiele

 Schulnoten

Eine Schulnote ist nicht einfach eine Zahl zwischen 1 und 6. Es gibt zig Schulnoten-Systeme. Schauen wir mal, ob wir dazu ein paar Muster bauen können.
Das Deutsche Notensystem hat sechs Stufen. Je nach Bundesland oder Schulart und noch einige andere Kriterien werden ganze Noten, halbe Noten, viertel Noten oder zehntel Noten, mit ein oder zwei Nachkommastellen genutzt. Teilweise gibt es im Notensysten auch die Note 1+, was dann entweder 0,7 oder auch 0,75 bedeuten kann. Der Muster-Ersteller sollte dann eben wissen welche der Möglichkeiten er für sein Formular auswählen möchte bzw. muss.

 Ganze Noten

Nun, ein Muster für eine ganze Note ist natürlich der einfachste Fall. Wir listen einfach alle gültigen Zahlen in einer eckigen Klammer auf. Wir können jedes Zeichen einzeln nennen, oder wir können den gültigen Bereich schreiben. Richtig ist auch eine Mischung von beidem. Schreiben kann man das entweder als Auflistung aller Zahlen 123456 oder als Bereich 1-6 oder gar einer Mischung von beidem [123-6]

Format: n
pattern="[1-6]"
pattern="[123456]"
pattern="[1-456]"

1
3
6
7
$
A


 Halbe Noten (eine Nachkommastelle)

Für die halben Noten brauchen wir mehrere Stellen. Da ja der gesamte Ausdruck in eckigen Klammern [..] nur für ein Zeichen steht, müssen wir für mehrere Zeichen auch mehrere rechteckige Klammern [..][..]setzen. Das Komma können wir einfach dazwischensetzen. Das Muster sieht dann also so aus: [1-6],[05]. Aber hallo. Damit ist ja auch die Note 6,5 gültig. Also müssen wir die 6 aus der Gruppe herausnehmen und als Alternative mit dem 'oder'-Zeichen | anfügen.
Die PC-Werker, die statt dem Komma einen Punkt nehmen, müssen es eben ersetzen. Aber Achtung, der Punkt steht für ein beliebiges Zeichen, deshalb ist es mit dem Backslash \ zu maskieren! Wir können natürlich auch für Internationale Seiten mit beiden Alternativen bemustern, dann müsser wir das natürlich wieder in eckigen Klammern packen, da ja der gesamte Ausdruck in diesen Klammern Platzmacher für nur ein Zeichen ist.

Halbe Noten: Format: n,0 n,5
pattern="[1-5],[05]|6,0"

1,0
2,5
5,0
1,0
A,4
6,5

Halbe Noten: Format: n.0 n.5
pattern="[12345]\.[05]|6\.0"

1.0
2.5
5.0
1.3
A.4
6.5

Halbe Noten: Format: n,0 n,5 n.0 n.5
pattern="[1-5][.,][05]|6[.,]0"

1.0
2,0
5.0
1,3
A.4
6.5


 Halbe Noten (optional eine Nachkommastelle)

Die halben Noten können eine Stelle nach dem Komma haben, müssen aber nicht. Wir nehmen einfach mal die Muster von oben und geben den Nachkommastellen das Optional-Zeichen ?. Da aber das Komma natürlich nicht als letztes stehen darf müssen wir es mit runden Klammern (..)gruppieren. Die Komma-Null nach der 6 müssen wir ebenso runde Klanmmern ([\.,]0)?einschliesen, weil ja das eine ohne das Andere nicht stehen kann und die Option dann für beide Stellen gilt.

Halbe Noten Format: n oder n,0 oder n,5
pattern="[1-5]([.,][05])?|6([.,]0)?"

1
2,5
5.0
1,4
A.4
6.5


 Viertel Noten (zwingend zwei Nachkommastellen)

Gut, die 6 ist klar, da kommt nur noch eine NachkommaNull. Das können wir so hinschreiben. 6,00 Falls es (für die Oberstufen) die 1+ gibt: eben auch noch die 0,75|6,00. Als weitere Noten gibt es noch die Zahlen 1 bis 5 0,75|6,00|[1-5] und die entsprechenden Nachkommastellen ,00 - ,25 - ,50 oder ,75. Dazu müssen wir die Nachkomma-alternative in eine Gruppe packen. (00|25|50|75)

Viertel Noten Format: n,00 n,25 n,50 n,75
pattern="0,75|6,00|[1-5],(00|25|50|75)"

1.00
3,25
4,75
1,0
3,2
4.7

Viertel Noten Format: n,00 n,25 n,50 n,75
pattern="0,75|6,00|[1-5],([05]0|[27]5)"

1.00
3,25
4,75
1,0
3,2
4.7


 Viertel Noten (optionale Nachkommastellen)

Eigentlich wie oben, nur die Nachkommastellen müssen wir als Option behandeln.

Nur eine Nachkommastelle:
pattern="0,7|6(,0)?|[1-5](,[0257])"
ein oder zwei optionale Nachkommastellen:
pattern="0,7[05]?|[1-5](,(00?|2[05]?|50?|7[05]?))?|6(,00?)?"

0,7
3,2
4,75
0,8
4,325
7,2


 viertel Noten (optional mit +/-)

Nur so zum Spaß: Man könnte auch die Noten mit Plus- oder Minuszeichen so schreiben. Der Bindestrich - muß hier nicht maskiert werden! Außerhalb der eckigen Klammer sowiso nicht, innerhalb der eckigen Klammer nicht, weil er direkt an die Klammer anschliest. Das Pluszeichen mußt Du maskieren.

Für die Oberstufe
pattern="1[+-]?|[1-5][+-]?|6+?"

1+
4-5
5-
0,8
4,325
6-


 Zentel Noten

Mit Komma. Oder mit Punkt oder Komma. Der Punkt muß hier nicht maskiert werden, weil er direkt an die Klammer anschliest.

pattern="[1-5](,\d)?|6(,0)?"
pattern="[1-5]([.,]\d)?|6([.,]0)?"


 Punkte-Systeme

15 Punkte für die Oberstufe, 18 Punkte für die Juristenausbildung.

Das 15 Punkte-System
<input pattern="1?[0-5]">
18 Punkte-System (Juristenausbildung)
<input pattern="[01]?[0-8]">