网上找的一篇文章,不错
注意修正符一定要用小写的u
原文内容:
01 | 正则匹配汉字在不同的编码,不同的程序语言上都有些细微的出入,稍不注意就会得不到正确的结果,特此对比一下 javascript 和 php 的正则匹配汉字,而且 php 中的 gb2312 和 utf-8 两种编码匹配规则还不相同同。 |
03 | 在javascript中,要判断字符串是中文是很简单的: |
05 | <script type= "text/javascript" > |
07 | if (/^[\u4e00-\u9fa5]+$/ . test(str)) { |
13 | php 匹配 gb2312/gbk 编码汉字的正确写法是: |
16 | header( "Content-type:text/html;charset=gb2312" ); |
18 | if (preg_match( "/^[" . chr (0xa1). "-" . chr (0xff). "]+$/" , $str )) { |
24 | 注:上面的也适用于匹配 gbk 编码汉字,因为 gbk 编码包含了所有 gb2312 编码字符。两种编码的区别请参考:http: |
26 | php 匹配 utf-8 编码汉字的正确写法是: |
29 | header( "Content-type:text/html;charset=utf-8" ); |
31 | if (preg_match( "/^[\x{4e00}-\x{9fa5}]+$/u" , $str )) { |
37 | 注意别漏写修饰符 u !关于正则表达式修饰符请参考: http: |
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《php正则匹配中文的问题》
发表评论