加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:03:05 所属栏目:PHP教程 来源:网络整理
导读:我有一个简单的正则表达式来检查用户名: preg_match('/(*UTF8)^[[:alnum:]]([[:alnum:]]|[ _.-])+$/i',$username); 在本地测试(使用WAMP的Windows 7)中,这将允许使用UTF字符的用户名(例如é或?).但是,当我在实际托管该站点的服务器上进行测试时,我收到以下
我有一个简单的正则表达式来检查用户名:
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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读