为了账号安全,请及时绑定邮箱和手机立即绑定

正则匹配中文问题

正则匹配中文问题

慕后森 2019-03-15 15:15:13
条件:匹配中英文加下划线5-15位var pattern = /^[u4E00-u9FA5A-Za-z0-9_]{5,15}$/; 大家觉得这个正则有问题吗?问题是个别中文匹配不到呢var str = "㷣地方aa123_"; pattern.test(str); //返回false
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

有两个问题:

  1. 你忘了加反斜杠了(或者是markdown给你搞没了),应该是这样

var pattern = /^[\u4E00-\u9FA5A-Za-z0-9_]{5,15}$/;
  1. “㷣”(\u3DE3)这个字不在\u4E00-\u9FA5A范围内。


查看完整回答
反对 回复 2019-03-26
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

问题:
Unicode汉字编码范围u4E00-u9FA5
Unicode汉字编码表
查询了编码表发现㷣(xing)字不在Unicode编码范围所以会返回false
unicode转中文,中文转unicode,参考@zifengb
修改后的正则表达式

var pattern = /^[\u4e00-\u9fa5\u3de3_a-zA-Z0-9]{5,15}$/; 

var str = "㷣地方aa123_"; 

str.match(pattern);


查看完整回答
反对 回复 2019-03-26
  • 3 回答
  • 0 关注
  • 672 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信