JS正则表达式校验输入是否为中文

checkChinese(val) {
        let reg = /^[u4E00-u9FA5]+$/
        return reg.test(val)
},

这个校验不准确,有没有更好的正则可以校验中文

阅读 7.6k
3 个回答

不一定要用正则吗,用charCodeAt()也是可以的,该方法可返回指定位置的字符的 Unicode 编码;大于255的就是中文。

checkChinese(val) {
       return (val.charCodeAt()>255)?true:false;
},
checkChinese(val) {
    let reg = /[\u4e00-\u9fa5]/gm
    return reg.test(val)
},

这些验证首先的是需要统一编码,否则就没有意义,不能适合不同的编码是中文处理的一个固化问题,这点不同于英语。
你的检测要求全部是中文,这点可能不够合理,很多时候是中文,普通ascii混杂。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题