微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在PHP中将UTF字符与preg_match匹配:(* UTF8)适用于Windows但不适用于Linux

我有一个简单的正则表达式来检查用户名
preg_match('/(*UTF8)^[[:alnum:]]([[:alnum:]]|[ _.-])+$/i',$username);

在本地测试(使用WAMP的Windows 7)中,这将允许使用UTF字符的用户名(例如é或ñ).但是,当我在实际托管该站点的服务器上进行测试时,我收到以下警告:

Warning: preg_match() [function.preg-match]: Compilation Failed: (*VERB) not recognized at offset 5 in /home/sites/vgmusic.com/test/Core/Impl/FormElementValidator.PHP on line 12

我也在本地Ubuntu安装上试过这个并得到同样的错误.事实上,我只在我的本地开发环境中看到过这项工作.有没有办法允许适用于所有操作系统的特殊字符?

通过 Unicode character properties描述字符来尝试:
preg_match('/^\p{L}[\p{L} _.-]+$/u',$username)

原文地址:https://www.jb51.cc/php/133114.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐