我最近在弄php的正则表达式中文匹配
发现在GB2312下是正常的,但是在UTF-8下,始终是false
<? $str = "超越";
if(preg_match("/^[^x00-xff]+$/", $str)) {
echo "这是一个纯中文字符串<br>";
} else {
echo "这不是一个纯中文字串<br>";
}?>
而且在GB2312下,中文是当作2个字符,而在UTF-8下中文是被当作3个字符的
例: GB2312 echo substr($str,0,2) ---- 超
而UTF-8 echo substr($str,0,3) ---- 超
谁知道在UTF-8下匹配双字节的正则表达式怎么写啊
发现在GB2312下是正常的,但是在UTF-8下,始终是false
<? $str = "超越";
if(preg_match("/^[^x00-xff]+$/", $str)) {
echo "这是一个纯中文字符串<br>";
} else {
echo "这不是一个纯中文字串<br>";
}?>
而且在GB2312下,中文是当作2个字符,而在UTF-8下中文是被当作3个字符的
例: GB2312 echo substr($str,0,2) ---- 超
而UTF-8 echo substr($str,0,3) ---- 超
谁知道在UTF-8下匹配双字节的正则表达式怎么写啊
解决方案 »
- PHP页面提交不了表单,点击提交无显现是怎么回事呀?
- phpMyAdmin 试图连接到 MySQL 服务器,但服务器拒绝连接问题
- 为什么用parse_str会自动加反斜杠?怎么去掉?
- echo $new_foo."<p />";
- php dio_read()是阻塞的?请教怎么设置成非阻塞的~谢谢~
- 用array声明数组出错, 要配置那里?
- php+mysql分页的困惑!每个分页都运行2次检索数据库的脚本?
- delete t1 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25 在mysql 5.0.0 和mysql 5.0.21中
- thinkphp动态加载菜单的问题
- 如何替换mysql数据库中 A字段中 \符号啊
- 请教一下我这样和discuz整合的方法可行吗?
- php提取需要验证的网页
我也试了,也实在是FALSE