php专区

 首页 > php专区 > 正则表达式 > PHP 正则表达式验证中文的问题_正则表达式

PHP 正则表达式验证中文的问题_正则表达式

分享到:
【字体:
导读:
          PHP 正则表达式验证中文的问题,感觉php不支持perl转义挺讨厌的。...

$str = '中华人民共和国123456789abcdefg';
echo preg_match("/^[u4e00-u9fa5_a-zA-Z0-9]{3,15}$",$strName);

运行一下上面这段代码,看会有什么提示信息?
Warning: preg_match(): Compilation failed: PCRE does not support L, l, N, P, p, U, u, or X at offset 3 in F:wwwrootphptest.php on line 2

原来,PHP正则表达式中不支持下列 Perl 转义序列:L, l, N, P, p, U, u, or X

在 UTF-8 模式下,允许用“x{...}”,花括号中的内容是表示十六进制数字的字符串。原来的十六进制转义序列 xhh 如果其值大于 127 的话则匹配了一个双字节 UTF-8 字符。
所以,可以这样来解决preg_match("/^[x80-xff_a-zA-Z0-9]{3,15}$",$strName);
复制代码 代码如下:

$shouji ="哈哈哈哈";
if (!preg_match("/^[x80-xff]{6,30}$/",$shouji)){
    echo "nonono";    
}
else {
    echo "yesyesyes";
}
?>
分享到:
php中utf-8编码下用正则表达式如何匹配汉...
在javascript中,要判断字符串是中文是很简单的。比如: 复制代码 代码如下: var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); } else { alert("该字符串不全部是中文"); } 想当然的,在php中来判断字符串是否为中文,就会沿袭这个思路: 复制代码 代码如下: 不过,很快...
正则表达式中\w不能识别中文_正则表达式
正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。本贴随时会更新。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……