条件:匹配中英文加下划线5-15位
var pattern = /^[u4E00-u9FA5A-Za-z0-9_]{5,15}$/; 大家觉得这个正则有问题吗?问题是个别中文匹配不到呢
var str = "㷣地方aa123_";
pattern.test(str); //返回false
条件:匹配中英文加下划线5-15位
var pattern = /^[u4E00-u9FA5A-Za-z0-9_]{5,15}$/; 大家觉得这个正则有问题吗?问题是个别中文匹配不到呢
var str = "㷣地方aa123_";
pattern.test(str); //返回false
正确写法应该是
/^[A-Za-z0-9_\u4E00-\u9FA5]{5,15}$/
那个‘㷣’之所以匹配不了是因为它的unicode编码为\u3de3
unicode编码转换工具
问题:
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);
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
有两个问题:
\u3DE3
)这个字不在\u4E00-\u9FA5A
范围内。