这2个正则有什么区别? var f=/^[0-9]+$/gvar f1=/^[0-9]+$/g===================这不是一样的么? - -! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 2楼不是说明了么打错了var f1=/^[0-9]+$/ ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。 + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 g Global 设置全程性质 http://community.csdn.net/Expert/TopicView3.asp?id=5422907看上面一贴的最后一个回答如果只匹配一次的话,var f=/^[0-9]+$/gvar f1=/^[0-9]+$/2个是一样的,因为有^开头和$结尾,加不加g一样的,但连续多次匹配的话,加不加g就不一样了 描述指定索引,下一个匹配从该索引处开始。语法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]+$/galert(f.test("1"));alert(f.test("12"));对于f而言当调用f.test("12"),这是lastIndex应该是1,所谓的字符串的长度应该是指"1"的长度,不是"12"的的长度(-_-!!)?然后运用规则2不知道对于规则1,什么情况下才会在用 正则匹配 的情况下出现除非手动 设置lastIndex的值所以对于var f=/^[0-9]+$/galert(f.test("1"));alert(f.test("12"));修改为-->var f=/^[0-9]+$/galert(f.test("1"));f.lastIndex=0;alert(f.test("12"));测试没有问题,汗! g 为globle 的简写意思全局匹配,没有g,找到第一个匹配不再找下去了,有了g 找到第一个匹配之后还会继续找下去,直至找到所有的匹配 使用javascript如何在客户端创建一个文件夹呢 那个“一晚上的游戏”我也做一个版本。分享一下。 请教JS计算公式 这个如何实现呢 根据身份号码自动生成相关信息 请问怎样实现保持目录树状态不变,而使整个目录树disable?(目录树是用纯javascript写的) EXCEL? 高难问题,特别邀请emu,ruming,骆驼,等高手来看看这个问题!关于select 和 innerHTML 大家有没有遇到过这样的情况 关于算法的问题,大家来看看 javascript如何增减iframe中的table行 请教一段代码
打错了
var f1=/^[0-9]+$/
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 g Global 设置全程性质
var f=/^[0-9]+$/g
var f1=/^[0-9]+$/
2个是一样的,因为有^开头和$结尾,加不加g一样的,但连续多次匹配的话,加不加g就不一样了
指定索引,下一个匹配从该索引处开始。
语法
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"));
测试没有问题,汗!
没有g,找到第一个匹配不再找下去了,有了g 找到第一个匹配之后还会继续找下去,直至找到所有的匹配