【发布时间】:2013-07-05 16:23:59
【问题描述】:
我正在尝试构建一个与 PHP 兼容的正则表达式,它允许重音字符,例如“ü”。 据我了解, \p{L} 运营商应该这样做。到目前为止我所拥有的:
/^[a-z0-9\p{L}][a-z0-9_\p{L}]*/i
这应该允许一个字符串可以以任何 a-z、0-9 和重音字符开头,然后可以后跟任意数量的 a-z、0-9 和重音字符,并且整个表达式不区分大小写。
但是在测试中,当在字符串中的任何位置使用诸如“ü”之类的字符时,验证会失败。 我已经确保传递的值是用 utf8 编码的:
utf8_encode($value)
但它仍然失败。 有什么建议吗?
提前致谢
--------------编辑---------- ----
在另一台服务器上测试后,原来的模式也有效。
/^[a-z0-9\p{L}][a-z0-9_\p{L}]*/i
问题似乎与服务器设置有关。 找到后我会发布解决方案。
【问题讨论】:
-
尝试开启utf修饰符
/.../ui -
很遗憾,utf 修饰符没有成功。
标签: php regex validation utf-8 expression