正则表达式匹配中文

在实际开发中,偶尔需要用到正则表达式匹配中文


JavaScript用正则来匹配中文时:

百度百科中直接查询“正则表达式”, 可以看到“元字符”的列表,里面有说明\u的用法。(其中\un,匹配n,其中n是一个四个十六进制数字表示的Unicode字符。例如, \u00A9匹配版权符号(&copy)。)

例1:如下js代码中正则匹配版权符号

var patt1=new RegExp("\u00A9");
a=patt1.test('©');
alert(a);

例2:如下js代码中正则匹配中文


var patt1=new RegExp("[\u4E00-\u9FA5]+");
a=patt1.test('北京');
alert(a);



Php中用正则匹配中文时:

1、查看PHP手册PCRE修饰符,有如下内容:
u (PCRE_UTF8)
此修正符打开一个与 perl 不兼容的附加功能。 模式和目标字符串都被认为是 utf-8 的。 无效的目标字符串会导致 preg_* 函数什么都匹配不到; 无效的模式字符串会导致 E_WARNING 级别的错误。 PHP 5.3.4 后,5字节和6字节的 UTF-8 字符序列被考虑为无效(resp. PCRE 7.3 2007-08-28)。 以前就被认为是无效的 UTF-8。
2、php的正则中, \x{hex},表达一个16进制数, 需要注意的是hex 可以是1-2位的,也可以是4位的,但是如果是4位的必须加上大括号,
3、php中utf8编码下用正则表达式匹配汉子的正确写法是 /^[\x{4e00}-\x{9fa5}]+$/u

例子:uff8字符匹配中文
if(!preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) //UTF-8汉字字母数字下划线正则表达式
 {
  echo "<font color=red>您输入的[".$str."]含有违法字符</font>";
 }
 else
 {
  echo "<font color=green>您输入的[".$str."]完全合法,通过!</font>";
 
 }


Siblime编辑器中用正则匹配中文:
[\x{4e00}-\x{9fa5}]

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值