如何用charcode来判断字符是否为汉字?

汉字的charcode范围是什么?
全角半角的标点符号是否也能用charcode范围表示出来呢?

阅读 4.7k
2 个回答
新手上路,请多包涵

U+4E00~U+9FA5 是一个格外古老的汉字范围。

按 UCD/Scripts.txt,文种属性为 Han 的包括:

console.log(str.match(/[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9\U00016FF0-\U00016FF1\U00020000-\U0002A6DD\U0002A700-\U0002B734\U0002B740-\U0002B81D\U0002B820-\U0002CEA1\U0002CEB0-\U0002EBE0\U0002F800-\U0002FA1D\U00030000-\U0003134A]/g))

按 UCD/ScriptExtensions.txt,文种属性为 Hani 的包括:

console.log(str.match(/[\u3006\u303E-\u303F\u3190-\u319F\u31C0-\u31E3\u3220-\u3247\u3280-\u32B0\u32C0-\u32CB\u32FF\u3358-\u3370\u337B-\u337F\u33E0-\u33FE\U0001D360-\U0001D371\U0001F250-\U0001F251\u302A-\u302D\uA700-\uA707\u303C\u303D\u3003\u3013\u301C-\u301F\u3030\u3037\uFE45-\uFE46\u3001-\u3002\u3008-\u3011\u3014-\u301B\u30FB\uFF61-\uFF65]/g))
console.log(str.match(/[\u0000-\u00ff]/g))     //半角   
console.log(str.match(/[\u4e00-\u9fa5]/g))     //中文   
console.log(str.match(/[\uff00-\uffff]/g))     //全角   
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题