侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

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

2023-12-17 星期日 / 0 评论 / 0 点赞 / 20 阅读 / 3095 字

普遍使用的正则是[/u4e00-/u9fa5],但这个范围并不完整。例如: /[/u4e00-/u9fa5]/.test('⻏')// 测试部首⻏,

普遍使用的正则是[/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、全角标点

广告 广告

评论区