Correspondance des caractères Unicode dans PCRE/PHP
Lorsque vous essayez de valider des noms à l'aide de PCRE en PHP, vous pouvez rencontrer des problèmes avec les caractères non-ASCII comme Ă ou 张. En effet, le modèle utilisé ne prend pas explicitement en compte la compatibilité Unicode.
Problème de modèle
Votre modèle d'origine, $namePattern, vise à faire correspondre les lettres Unicode, mais repose uniquement sur la propriété p{L}. Bien que cette propriété fonctionne généralement pour les caractères ASCII, elle peut ne pas gérer correctement les caractères Unicode étendus.
Solution : Modificateur Unicode
Pour garantir une correspondance correcte des caractères Unicode, il est essentiel d'utiliser le modificateur u avec PCRE. Ce modificateur fait passer PHP en mode Unicode, permettant l'utilisation des propriétés et des modèles de caractères Unicode.
Avec ce modificateur ajouté, votre modèle modifié devient :
$namePattern = '/^[-\' \p{L}]+$/u';
Ce modèle correspondra désormais correctement aux deux Lettres ASCII et Unicode étendues, ainsi que des apostrophes, des traits d'union et des espaces.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!