我正在尝试构建一个与 PHP 兼容的正则表达式,它允许重音字符,例如“ü”。据我了解, \p{L} 运营商应该这样做。到目前为止我所拥有的:
/^[a-z0-9\p{L}][a-z0-9_\p{L}]*/i
这应该允许一个字符串可以以任何 az、0-9 和重音字符开头,然后可以跟任意数量的 az、0-9 和重音字符,并且整个表达式不区分大小写。
但是在测试中,当在字符串中的任何位置使用诸如“ü”之类的字符时,验证会失败。我已通过以下方式确保传递的值是用 utf8 编码的:
utf8_encode($value)
然而它仍然失败。有什么建议么?
提前致谢
- - - - - - - - - - - - -编辑 - - - - - - - - - - - - -
在另一台服务器上测试后,原始模式也有效。
/^[a-z0-9\p{L}][a-z0-9_\p{L}]*/i
问题似乎与服务器设置有关。找到后我会发布解决方案。