Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Unicode-Buchstaben in PHPs PCRE mit „\p{L}' korrekt zuordnen?

Wie kann ich Unicode-Buchstaben in PHPs PCRE mit „\p{L}' korrekt zuordnen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-26 12:18:17215Durchsuche

How Can I Correctly Match Unicode Letters in PHP's PCRE Using `p{L}`?

Übereinstimmung von Unicode-Buchstabenzeichen in PCRE/PHP: Erkunden der Eigenschaften von Unicode-Zeichen

Die Suche nach einem umfassenden Namensvalidator in PHP hat zu dem geführt Erkundung der Eigenschaften von Unicode-Zeichen. Allerdings stieß ein kürzlich durchgeführter Versuch mit dem Muster „/^([p{L}'- ]) $/“ auf Einschränkungen, da Zeichen wie Ă oder 张 nicht erkannt wurden.

Grundlegendes zu den Eigenschaften von Unicode-Zeichen

Das Muster verwendet die Unicode-Zeicheneigenschaft p{L}, die Buchstaben in jeder Sprache darstellt. Diese Eigenschaft erfordert jedoch den UTF-8-Modus, um ordnungsgemäß zu funktionieren. Ohne den Modifikator „u“ im Muster werden die Unicode-Zeicheneigenschaften nicht verwendet, was zum beobachteten Verhalten führt.

Problem lösen

Um das Problem zu beheben, Der Modifikator „u“ muss dem Muster hinzugefügt werden. Dadurch wird der UTF-8-Modus aktiviert, sodass die Unicode-Zeicheneigenschaften korrekt interpretiert werden können. Das überarbeitete Muster „/^[-' p{L}] $/u“ stimmt jetzt genau mit Unicode-Buchstaben, Apostrophen, Bindestrichen und Leerzeichen überein.

Zusätzliche Überlegungen

Stellen Sie sicher, dass die Eingabedaten tatsächlich in UTF-8-Kodierung bereitgestellt werden. Geben Sie die UTF-8-Kodierung explizit auf der Formularseite an, um potenzielle Kompatibilitätsprobleme zu vermeiden. Beachten Sie außerdem, dass das Muster weiterhin Leerzeichen zulässt, die möglicherweise im Validator eingeschränkt werden müssen.

Das obige ist der detaillierte Inhalt vonWie kann ich Unicode-Buchstaben in PHPs PCRE mit „p{L}' korrekt zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn