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

这2个正则有什么区别?
<script>
var   f=/^[0-9]+$/g
var   f1=/^[0-9]+$/g
alert(f.test( "1 "));//true
alert(f.test( "2 "));//false
alert(f.test( "3 "));//true
alert(f.test( "4 "));//false
alert(f.test( "5 "));//true
alert(f.test( "6 "));//false
</script>
如果用f1都是true

------解决方案--------------------
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n ' 或 '\r ' 之后的位置。


$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 '\n ' 或 '\r ' 之前的位置。


+ 匹配前面的子表达式一次或多次。例如, 'zo+ ' 能匹配 "zo " 以及 "zoo ",但不能匹配 "z "。+ 等价于 {1,}。

g Global 设置全程性质
------解决方案--------------------
g全局匹配,
没有g,找到第一个匹配就返回了,
------解决方案--------------------
http://community.csdn.net/Expert/TopicView3.asp?id=5422907

看上面一贴的最后一个回答

如果只匹配一次的话,
var f=/^[0-9]+$/g
var f1=/^[0-9]+$/
2个是一样的,因为有^开头和$结尾,加不加g一样的,但连续多次匹配的话,加不加g就不一样了