在 PCRE/PHP 中匹配 Unicode 字母字符:探索 Unicode 字符属性
在 PHP 中寻求全面的名称验证器导致了探索 Unicode 字符属性。然而,最近对模式“/^([p{L}'- ]) $/”的尝试遇到了限制,无法识别 Ă 或张等字符。
理解 Unicode 字符属性
该模式采用 p{L} unicode 字符属性,它表示任何语言中的字母。但是,此属性需要 UTF-8 模式才能正常运行。如果模式中没有“u”修饰符,则不会利用 unicode 字符属性,从而导致观察到的行为。
解决问题
要纠正该问题,必须将“u”修饰符添加到模式中。这将启用 UTF-8 模式,从而允许正确解释 unicode 字符属性。修改后的模式“/^[-' p{L}] $/u”现在可以准确匹配 unicode 字母、撇号、连字符和空格字符。
其他注意事项
确保输入数据确实以 UTF-8 编码提供。在表单页面上显式指定 UTF-8 编码以避免潜在的兼容性问题。此外,请注意,该模式仍然允许使用空格字符,这可能需要在验证器中进行限制。
以上是如何使用'\p{L}”正确匹配 PHP PCRE 中的 Unicode 字母?的详细内容。更多信息请关注PHP中文网其他相关文章!