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

2016-02-19 09:52 8 1 收藏

下面是个简单易学的PHP 正则表达式验证中文的问题教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - Web开发 】

$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);
代码如下:

?php
$shouji ="哈哈哈哈";
if (!preg_match("/^[x80-xff]{6,30}$/",$shouji)){
    echo "nonono";    
}
else {
    echo "yesyesyes";
}
?

来源:http://www.tulaoshi.com/n/20160219/1592490.html

延伸阅读
标签: Web开发
代码如下: $xmlfile = 'news/'.date('YmdH').'.xml'; $sourcexml = 'http://www.chinanews.com.cn/rss/scroll-news.xml'; if( !file_exists($xmlfile) ) { $str = @file($sourcexml) or die('加载文件时出错。'); $fp = fopen($xmlfile,'w') or die('写缓存失败!'); fputs($fp,$str); fclose($fp); 然后用simplexml读取并输出HTML 代...
标签: Web开发
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。文章转载自:http://www.phpchina.com/31423/viewspace_9417.html 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内): [^\x00-\xff] 评注:可以用来...
标签: Web开发
代码如下: //匹配文本,这个偶尔比较好用,但是要小心字符中包含\E  $str = '[a-z]';  $str = preg_replace('/\G[a-z]\E/', '', $str);  echo $str; //打印空,全被替换掉了,相关大概就是preg_quote功能  复制内容到剪贴板代码:  //给匹配结果命名,这样在匹配结果中...
中国电话号码验证 匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222 正则表达式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*" 中国邮政编码验证 匹配形式如:215421 正则表达式 "d{6}" 电子邮件验证 匹配形式如: [email protected] /* */ ...
标签: Web开发
正则表达式的功能实在太强大了~以下为找到的一个关于正则表达式基本语法的介绍: 首先让我们看两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^abc$":表示开始和结尾都是"abc"...

经验教程

170

收藏

41
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部