Nach MDN x* : *Matches the preceding item x 0 or more times.*
Regex Sternchen Nutzung
Im Wesentlichen sollten die vorhergehenden Zeichen vollständig optional sein. Die Zeichenfolge wird angepasst, unabhängig davon, ob sie existiert oder nicht. Also warum ist es, dass:
1.
var text = "foobar";
var re = /q*/;
var found = text.match(re);
console.log(found); // prints '["", index: 0, input: "foobar"]'
aber
var re = /qz*/;
console.log(found); // prints 'null'
Beide Ausdrücke ebenso nicht vorhanden sind und somit 0 mal angepasst werden sollte, und '",' sollte es sein ist zurückgekommen.
Oder:
2.
var re = /fz*/;
console.log(found); // prints '["f", index: 0, input: "foobar"]'
aber
var re = /fzq*/;
console.log(found); // prints 'null'
Was hier passiert? Von meinem Verständnis 'fzq'
existiert nicht, so sollte 0 Mal übereinstimmen, und "" "sollte zurückgegeben werden, richtig? Und wenn es irgendwie auf Zeichenbasis statt der ganzen Schnur übereinstimmt, sollte 'fzq*'
das gleiche Resultat zurückgeben, als 'fz'
- 'f'
wird einmal zusammengebracht und der Rest wird 0 Mal zusammengebracht. Aber anscheinend passiert das nicht.
Könnte jemand etwas Licht auf was zur Hölle hier geschieht?