条件:匹配中英文加下划线5-15位var pattern = /^[u4E00-u9FA5A-Za-z0-9_]{5,15}$/; 大家觉得这个正则有问题吗?问题是个别中文匹配不到呢var str = "㷣地方aa123_"; pattern.test(str); //返回false
3 回答
aluckdog
TA贡献1847条经验 获得超7个赞
有两个问题:
你忘了加反斜杠了(或者是markdown给你搞没了),应该是这样
var pattern = /^[\u4E00-\u9FA5A-Za-z0-9_]{5,15}$/;
“㷣”(
\u3DE3
)这个字不在\u4E00-\u9FA5A
范围内。
慕尼黑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);
添加回答
举报
0/150
提交
取消