码迷,mamicode.com
首页 > Web开发 > 详细

关于中文字符匹配js正则表达式

时间:2015-04-26 12:30:31      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

普遍使用的正则是[\u4e00-\u9fa5],但这个范围并不完整。例如: 
/[\u4e00-\u9fa5]/.test( ‘?‘ ) // 测试部首?,返回false 
 
根据Unicode 5.0版编码,要准确的判断一个中文字符要包括: 
范围            含义                范围               含义 
2E80-2EFF   CJK 部首补充    2F00-2FDF   康熙字典部首 
3000-303F   CJK 符号和标点   31C0-31EF   CJK 笔画 
3200-32FF   封闭式 CJK 文字和月份   3300-33FF   CJK 兼容 
3400-4DBF   CJK 统一表意符号扩展 A  4DC0-4DFF   易经六十四卦符号 
4E00-9FBF   CJK 统一表意符号  F900-FAFF   CJK 兼容象形文字 
FE30-FE4F   CJK 兼容形式    FF00-FFEF   全角ASCII、全角标点 
 
因此,正确的匹配中文字符正则表达式为: 
var rcjk = /[\u2E80-\u2EFF\u2F00-\u2FDF\u3000-\u303F\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FBF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF]+/g; 
 
如果不希望匹配标点、符号,在正则中去掉对应的范围即可: 
3000-303F   CJK 符号和标点   FF00-FFEF   全角ASCII、全角标点

关于中文字符匹配js正则表达式

标签:

原文地址:http://my.oschina.net/u/1182602/blog/406435

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!