var f=/^[0-9]+$/g
var f1=/^[0-9]+$/g
===================这不是一样的么? - -!

解决方案 »

  1.   

    2楼不是说明了么
    打错了
    var f1=/^[0-9]+$/
      

  2.   

    ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 
    $ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。 
    +  匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 g Global 设置全程性质
      

  3.   

    http://community.csdn.net/Expert/TopicView3.asp?id=5422907看上面一贴的最后一个回答如果只匹配一次的话,
    var f=/^[0-9]+$/g
    var f1=/^[0-9]+$/
    2个是一样的,因为有^开头和$结尾,加不加g一样的,但连续多次匹配的话,加不加g就不一样了
      

  4.   

    描述
    指定索引,下一个匹配从该索引处开始。
    语法
    rgexp.lastIndex [= index] 
    lastIndex 属性的语法组成部分如下: 部分 描述 
    rgexp 必选项。正则表达式 对象。可以是变量名或文字。 
    index 索引,下一个匹配从该索引处开始。 
    说明
    lastIndex 属性被 exec 方法、以及 String 对象的 match、replace、和 split 方法修改。
    下面的规则应用于 lastIndex 的值: 如果 lastIndex 大于字符串的长度,则 test 和 exec 方法失败,并且 lastIndex 被设置为
    零。 
    如果 lastIndex 等于字符串的长度,且模式与空字符串匹配,则正则表达式匹配。否则匹配失败,并且 lastIndex 被重置为零。 
    否则,lastIndex 被设置为紧接最近的匹配的下一个位置。 上面是对lastIndex的说明
    var f=/^[0-9]+$/g
    alert(f.test("1"));
    alert(f.test("12"));
    对于f而言当调用f.test("12"),这是lastIndex应该是1,所谓的字符串的长度
    应该是指"1"的长度,不是"12"的的长度(-_-!!)?然后运用规则2不知道对于规则1,什么情况下才会在用 正则匹配 的情况下出现
    除非手动 设置lastIndex的值
    所以对于
    var f=/^[0-9]+$/g
    alert(f.test("1"));
    alert(f.test("12"));
    修改为-->
    var f=/^[0-9]+$/g
    alert(f.test("1"));
    f.lastIndex=0;
    alert(f.test("12"));
    测试没有问题,汗!
      

  5.   

    g 为globle 的简写意思全局匹配,
    没有g,找到第一个匹配不再找下去了,有了g 找到第一个匹配之后还会继续找下去,直至找到所有的匹配