Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Unicode-Buchstaben in PHPs PCRE mit „\p{L}' korrekt zuordnen?
Ü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!