js正则表达式匹配汉字

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

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

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

/\p{Unified_Ideograph}/u

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

你可能感兴趣的:(php)