Der Browser-Speicher localStorage ist nicht verfügbar. Entweder unterstützt dein Browser ihn nicht oder du hast ihn deaktiviert oder er ist voll. Ohne localStorage werden deine Lösungen nicht gespeichert.
Regex: Zeichenauswahl
Die letzte Lektion führte als Metazeichen den Punkt ein.
Er steht für ein beliebiges Zeichen. So steht
Die Auswahl kann beliebig viele Zeichen enthalten.
/M.ier/
sowohl für Maier
als auch für Meier
. Er steht aber auch für Mxier
.
Möchte man letzteres ausschließen, so muss man die Zeichenauswahl auf a
und e
begrenzen. Dazu schreibt man die gewünschte Auswahl in eckige Klammern:
let t1 = /M[ae]ier/.test('Maier');
let t2 = /M[ae]ier/.test('Meier');
let t3 = /M[ae]ier/.test('Mxier');
let t4 = /M[ae]ier/.test('Maeier');
Der Ausdruck in eckigen Klammern steht für genau ein Zeichen aus diesem Ausdruck.
/[ae]/
steht also für ein Zeichen, das ein a
oder ein e
ist.
/M[ae]ier/
steht dann für Maier
oder Meier
.
Die Variablen t1
sowie t2
sind true
und t3
ist false
. Da /[ae]/
für genau ein Zeichen steht, ist t4
auch false
.Die Auswahl kann beliebig viele Zeichen enthalten.
/[abc]/
steht für a, b oder c
und /[123456]/
steht für eine Ziffer von 1 bis 6.Aufgabe
Schreibe eine Funktion
Beispiel:
pruefe
, die feststellt, ob ein String den Namen
Meier in einer der 4 Schreibweisen Maier, Meier, Mayer oder Meyer enthält.Beispiel:
pruefe('Frau Mayer')
sollte true
und
pruefe('Herr Mezer')
sollte false
ergeben.
+ Tipp
function pruefe(s) {
// Verwende die Zeichenauswahl
// zweimal.
}
+ Lösung
function pruefe(s) {
return /M[ae][iy]er/.test(s);
}