2016-05-17 2 views
0

Ich habe diese regex: https://regex101.com/r/bM5sQ0/2alle Unicode-Zeichen nur in HTML5 Eingabeformular Passende

<input type="text" pattern="[\p{L}]+\s[\p{L}]+"> 

Wich Ich versuche, den folgenden Text ein Muster entsprechen:

Firstname Surname 
Fírstnámé Súrnámé 

Und dismatch diese Zeilen:

Firstname Surname000 
Fírstnámé Súrnámé000 

Ich möchte dies global mit der Definition jedes Unicode-Buchstaben lösen (was ist, wenn jemand nicht ist Ungarisch, aber Polnisch, Deutsch, Französisch oder Spanisch und ich habe dort keine Sonderzeichen?). Meine Lösung funktioniert jedoch nicht.

+1

Soweit ich weiß, hat jedes seltsame Zeichen einen Unicode-Code. Du musst also genauer sein. Für jetzt alles, was ich sehen kann, ist '/^\ D + $ /', d. H. Alles außer Zahlen. Siehe hier: https://regex101.com/r/zK0qA7/1 –

+1

Vielen Dank! Köszi! :) – Lanti

Antwort

3

Ich kann Ihnen leicht sagen, warum Ihre Lösung nicht funktioniert. Wenn man sich die Erklärung auf regex101.com anschauen, werden Sie sehen:

\p entspricht dem Zeichen p wahrsten Sinne des Wortes (Groß- und Kleinschreibung)

{L} ein einzelnes Zeichen in der Liste {L} wahrsten Sinne des Wortes (Groß- und Kleinschreibung)

JavaScript unterstützt das Konstrukt \p{} nicht. Wenn Sie wirklich möchten, dass sie es unterstützt haben, schlage ich vor, dass Sie die Lösungen hier versuchen: https://stackoverflow.com/a/8933546.

Wenn Sie nur Ziffern nicht mögen, dann können Sie \D wie Tamas rev in den Kommentaren gesagt verwenden.