日期:2014-05-16  浏览次数:20410 次

正则表达式 汉字的匹配--很诡异
刚接触正则表达式,希望能来匹配汉字。

因此浏览了网络上的一些资料

知道了可以这样
str_char   =   "身份证 "
str_rule_rep   =   /^[\u4E00-\u9FA5]+$/

但是却在测试的时候,
str_rule_rep.test(str_char)

发现不行。

而把str_rule_rep   改成   /^[^\u4E00-\u9FA5]+$/

却可以了。。

但是具我所知:在中括号里面加^符号,是反义的意思。。而\u4E00-\u9FA5这个表示的是汉字。那么一反义后,不是就不是汉字了嘛,,,,,

希望各位高手给点自己的想法和理解。

------解决方案--------------------
<script type= "text/javascript ">
var str_char = "身 "
var str_rule_rep = /^[\u4E00-\u9FA5]+$/
alert(str_rule_rep.test(str_char)) //alert true
</script>
------解决方案--------------------
/^[^\u4E00-\u9FA5]+$/
其实你对正则理解得没问题 而是对判断逻辑不理解
你得正则作用就是要返回false
------解决方案--------------------
给你个好文,里面讲的很详细,相信你会有所收获
http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm