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

前端技术 2023/09/09 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>

本文地址:https://www.stayed.cn/item/23528

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。