js正则表达式匹配汉字

假期老师布置了一个大作业,需要用正则表达式匹配一下 uniocde编码的汉字,但是网上千篇一律都是 /[\u4e00-\u9fa5]/ ,结果当然没有通过老师的作业检查(当然问题不仅仅只有这一点)。
直到搜到一个大牛的博客,才终于搞懂了怎么匹配汉字。

网上广为流传的/[\u4e00-\u9fa5]/ 其实只是cjk统一表意文字的基本部分,并且版本还只是1.1 的版本,即就是20年前的版本。 :) 气skr了
最新版的链接在这里

简而言之,要解决这个问题,首先要搞懂 unicode 对汉字的定义, 注意区分汉字和汉文的区别(大牛博客里讲了)。
然后就可以查找对应的unicode使用范围了。
但是。。。
时光飞逝,怎么写出一个可以自动与时俱进的匹配汉字的正则表达式呢?答案就是 Unicode属性类
顾名思义,就是将满足一定属性条件的unicode编码放在一起,这样书写正则表达式的时候就不用一个个的去取对应的范围了,比如我要找汉字
使用unicode属性类就可以直接写成

/\p{Unified_Ideograph}/u

但是貌似现在并不是所有浏览器都支持这种正则表达式的写法,如果不支持就需要使用转换器进行优雅降级。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值