最近几天,一直在为汉字验证的事纠结.百度了,google了,尼玛,找到的全是[u4e00-u9fa5]+$.这个是不对的,我怎么验证都不行,而且.这样验证只能是在utf8编码的情况下.在试了N天果后,今晚在baidu换了关键词终于找到了正确的正则表达式.以 后在网上分享东西..还是要验证过才能说啊.不能这样坑爹啊.
好了,主角上场."/^[x{4e00}-x{9fa5}]+$/u",就是他了,拿了直接用.哈哈.给力.给个例子吧,
代码如下 | 复制代码 |
$str = "坑爹的汉字验证"; if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) } |
运行结果,你懂的,但在gbk下上面会影响汉字判断的准确性了,
接着gg找到一段代码
代码如下 | 复制代码 |
echo (mb_eregi("[x80-xff].","中d文") ? "有" : "无") ."汉字"; |
例
代码如下 | 复制代码 |
$str = '汉字3测试'; |
当$str = '汉字3测试'; 时输出"含有汉字";
当$str = 'abc345'; 时输出"不含有汉字";
下面的例子包含gbk,gb2312的用法,需要的可以取消gbk那行的注释,然后把utf-8的注释掉
代码如下 | 复制代码 |
$action = trim($_GET['action']); |