关于php正则匹配汉字的方法介绍

yipeiwu_com6年前PHP代码库
php正则匹配汉字!

/^[\x{4e00}-\x{9fa5}]+$/u

以上这个正则表达式就是困扰了很多php程序员的匹配汉字的正则表达式

大家可能会觉得很简单,实际上不同编码,不同程序语言,都有些细微的出入,稍不注意就得不到正确的结果。

下面是utf-8编码的例子:
$str "汉字";
if (
preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
print(
"该字符串全部是中文");
} else {
print(
"该字符串不全部是中文");

下面的例子包含gbk,gb2312的例子:

<?php
$action 
trim($_GET['action']);
if(
$action == "sub")
{
    
$str $_POST['dir'];    
    
//if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312汉字字母数字下划线正则表达式 
    
if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str))   //UTF-8汉字字母数字下划线正则表达式
    
{   
         echo 
"<font color=red>您输入的[".$str."]含有违法字符</font>";   
     }
     else 
     {
         echo 
"<font color=green>您输入的[".$str."]完全合法,通过!</font>";   
     }
}
?>
<form method="POST" action="?action=sub">
输入字符(数字,字母,汉字,下划线):
     <input type="text" name="dir" value="">
     <input type="submit" value="提交">
</form>

相关文章

PHP5.2中PDO的简单使用方法

本文实例讲述了PHP5.2中PDO的简单使用方法。分享给大家供大家参考,具体如下: 一、PDO配置 1、确保PHP版本为5.2.5以上 2、在php.ini中找到Dynamic Exte...

PHP简单实现无限级分类的方法

本文实例讲述了PHP简单实现无限级分类的方法。分享给大家供大家参考,具体如下: 数据库结构: CREATE TABLE IF NOT EXISTS `city` ( `id` in...

Thinkphp结合ajaxFileUpload实现异步图片传输示例

前言 在做这个项目之前,对图片上传处理一直都是直接用表单提交的方式进行文件传输,这次因为需求,需要实现对图片进行异步传输,虽然实现并不难,毕竟现在插件太多了,但还是浪费了我很长的调试时间...

PHP中Static(静态)关键字功能与用法实例分析

本文实例讲述了PHP中Static(静态)关键字功能与用法。分享给大家供大家参考,具体如下: 1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的...

php程序之die调试法 快速解决错误

这是稍微有经验的phper 都会采用如下方式来解决问题 1. 看错误输出, 从输出项 反查源码,在源码处上下文加入调试代码,代码可以是最简单的 $debuglineno = __LINE...