Regex-Modifizierer / u in JavaScript?

8

Vor kurzem habe ich einen Regex für meinen PHP-Code erstellt, der nur die Buchstaben erlaubt (einschließlich Sonderzeichen plus Leerzeichen), aber jetzt habe ich ein Problem mit der Konvertierung (?) in die JavaScript-kompatible Regex, hier ist es : /^[\s\p{L}]+$/u , das Problem ist der Modifikator /u am Ende des Regex-Musters, da das JavaScript solche Flags nicht zulässt.

Wie kann ich das umschreiben, damit es auch im JavaScript funktioniert?

Gibt es etwas, das nur polnische Zeichen zulässt: Ł , Ą, Ś , Ć , ...

    
Scott 15.10.2012, 13:47
quelle

2 Antworten

10

Der /u Modifikator in PHP unterstützt Unicode . Dieser Modifikator wird in JavaScript nicht unterstützt.

Lesen Sie Ссылка , um weitere Informationen zu Unicode in Regex mit JavaScript zu erhalten.

Polnische Zeichen:

%Vor%

Alle speziellen polnischen Zeichen:

%Vor%     
Ωmega 15.10.2012, 13:59
quelle
3

JavaScript hat keine Vorstellung von UTF-8-Strings, daher ist es unwahrscheinlich, dass Sie das /u -Flag benötigen. (Ihre Strings sind wahrscheinlich schon in der üblichen JavaScript-Form, eine UTF-16 Code-Unit pro "Zeichen".)

Das größere Problem ist, dass JavaScript \p{L} oder eine äquivalente Notation nicht unterstützt; JavaScript-Regexes haben keine Kenntnis von Unicode-Zeicheneigenschaften. In den Antworten auf diese StackOverflow-Frage finden Sie Näheres zur ungefähren Vorgehensweise.

Bearbeitet zum Hinzufügen: Wenn Sie nur polnische Buchstaben unterstützen müssen, können Sie /^[\sa-zA-ZĄĆĘŁŃÓŚŹŻąćęłńóśźż]+$/ schreiben. Die Teile a-z und A-Z umfassen die ASCII-Buchstaben, und dann werden die restlichen Buchstaben einzeln aufgelistet.

    
ruakh 15.10.2012 13:54
quelle

Tags und Links