-
正则表达式\w有时可以匹配中文有时不能匹配的原因
网络 2014/5/27 18:03:28正则表达式 常用的元字符说明中\w匹配字母或数字或下划线或汉字
代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 测试发现\w不能匹配中文字符,代码如下:
var reg=/^[a-zA-Z]\w{5,17}/;
if (!(reg.test(s)))
{
alert("用户名长度在6~18之间,只能以字母开头,包含字符、数字和下划线!") ;
return false ;
}最后测试研究发现;\w能不能匹配汉字要视你的操作系统和你的应用环境而定
在某些情况下,\w也会匹配本地字符集,比如中文系统的中文,全角数字等,所以在明确要求是A~Z,a~z,0~9,_ 中的一个的时候,用[A-Za-z0-9_],而不用\w
如果正则表达式\w不能匹配中文字符,你可以从以下两方面查找原因:
一是要看你的系统是什么系统,中文系统下是可以匹配汉字的
二是要看你的应用环境,如果是在C#程序中,是可以匹配汉字的,在javascript或验证控件中,是不可以匹配汉字的
其它\d,\s也是如此不同的调试器发现也解析的不一样。可能跟ECMAScript标准有关系吧。
阅读(1640) 分享(0)
上一篇: 程序员的十大烦恼
下一篇: 前端打包工具Grunt入门讲解