Hallo Gunnar,
danke schon mal für Deine Mühen!
Du lässt Håkon zu, sperrst aber Łukasz und Jiři aus? Wenn du alle möglichen westeuropäischen Zeichen berücksichtigst, verdienen das die mittel- und osteuropäischen genauso. Wenigstens Latin Extended-A.
Ja klar, gutes Argument.
Und Zeichen jenseits von U+007F lassen sich genauso zusammenfassen wie a-z. Dann sieht der reguläre Ausdruck so aus:
Ah, das ist natürlich sehr praktisch, ich würde nämlich natürlich schon gern alle "Um/Sonderlaute" mitnehmen, wusste aber nicht wie.
var regexEinName = /[^a-zA-ZÀ-ÖØ-öø-ž,\- ]/;
Das gefällt mir sehr gut!
Aber bedeutet das ^ am Anfang nicht, dass das Pattern hier dann nur gegen das erste Zeichen in meinem String gematcht wird?
Du prüfst, ob in Vornamestr eins der in [] angegebenen Zeichen beliebig oft (einschließlich null Mal) vorkommt.
Aja, logisch. Da hatte ich offensichtlich einen Denkfehler.
Habe jetzt mal Deine Tipps und ein paar Varianten ausprobiert, funktioniert aber leider immer noch nicht - dachte eigentlich, dass
[a-zA-ZÀ-ÖØ-öø-ž,- ] hinhauen müsste, tat es aber nicht.
zb. geht "+Jörg+" als richtig durch "+++" dagegen nicht.
(Was mich dann noch mehr verwirrte, war, dass "+Jörg+" sogar gegen die Version mit ^ am Anfang durchging, was es meinem bisherigen Verständnis nach auf keinen Fall tun hätte dürfen, da es ja gleich beim + und doch eigentlich nur bei diesem scheitern hätte müssen???)
Als möglichen Grund dafür kann ich mir nur vorstellen, dass die test()-Funktion true zurückliefert, sobald irgendeines der Zeichen in meinem String gematcht werden kann, egal, ob welche dabei waren die nicht gematcht wurden. Kann das sein?
Viele Grüße
Michael