相思资源网 Design By www.200059.com
其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西
下面的代码都是在chrome的F12下调试的,大家可以研究一下
先来看个东西吧。
var re = /\d/; console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") );
全部是 true 没问题。。
但是你把 /\d/; 改成 /\d/g; 再试试。
再次修改:
console.log( /\d/g.test("1") ); console.log( /\d/g.test("1") ); console.log( /\d/g.test("1") ); console.log( /\d/g.test("1") );
全部是 true,这究竟是为什么呢?
这些结果相当有意思,当然高手自然知道为什么,如果你知道的话,下面其实可以跳过不用看了,全是水文而已。。
正则里有一个 lastIndex
的属性,是下一次匹配的开始位置。
var re = /\d/g; console.log( re.test("1"), re.lastIndex ); console.log( re.test("1"), re.lastIndex ); console.log( re.test("1"), re.lastIndex ); console.log( re.test("1"), re.lastIndex );
可以看到 第一次匹配结果为 true
表示匹配成功,此时 lastIndex
记录下一次匹配的起始位置为 1。
于是第二次匹配的时候 从 "1" 字符串索引 1 的位置匹配,当然就匹配失败了,因为这个字符串只有一个字符,他的索引是 0。
而 /\d/g.test("1")
这个为什么每次匹配成功能呢"htmlcode">
var re = /\d/g; console.log( re.test("1") ); re.lastIndex = 0; console.log( re.test("1") ); re.lastIndex = 0; console.log( re.test("1") ); re.lastIndex = 0; console.log( re.test("1") );
好了,今天修改语法高亮插件花了不少时间,所以水了一篇,望大家海涵。。
标签:
js正则test
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无浅谈js正则之test方法bug篇的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。