Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich sicherstellen, dass meine PCRE/PHP-Muster korrekt mit Unicode-Zeichen übereinstimmen?
Unicode-Zeichenvergleich in PCRE/PHP
Beim Versuch, Namen mithilfe von PCRE in PHP zu validieren, können Probleme mit Nicht-ASCII-Zeichen auftreten wie Ă oder 张. Dies liegt daran, dass das verwendete Muster die Unicode-Kompatibilität nicht explizit berücksichtigt.
Musterproblem
Ihr ursprüngliches Muster, $namePattern, soll mit Unicode-Buchstaben übereinstimmen, verlässt sich jedoch ausschließlich darauf die p{L}-Eigenschaft. Während diese Eigenschaft normalerweise für ASCII-Zeichen funktioniert, verarbeitet sie erweiterte Unicode-Zeichen möglicherweise nicht korrekt.
Lösung: Unicode-Modifikator
Um die ordnungsgemäße Übereinstimmung von Unicode-Zeichen sicherzustellen, ist dies der Fall Es ist wichtig, den u-Modifikator mit PCRE zu verwenden. Dieser Modifikator schaltet PHP in den Unicode-Modus und ermöglicht die Verwendung von Unicode-Zeicheneigenschaften und -Mustern.
Mit dem Hinzufügen dieses Modifikators wird Ihr geändertes Muster zu:
$namePattern = '/^[-\' \p{L}]+$/u';
Dieses Muster stimmt jetzt korrekt mit beiden überein ASCII- und erweiterte Unicode-Buchstaben sowie Apostrophe, Bindestriche und Leerzeichen.
Das obige ist der detaillierte Inhalt vonWie kann ich sicherstellen, dass meine PCRE/PHP-Muster korrekt mit Unicode-Zeichen übereinstimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!