gpt4 book ai didi

javaScript RegExp 第二个索引

转载 作者:行者123 更新时间:2023-11-28 20:58:56 25 4
gpt4 key购买 nike

我想获取“cat,bat,sat,fat”中的第二个“.at”'索引,程序是:

var text = "cat, bat, sat, fat";
var pattern = /.at/g;
var matches = pattern.exec(text);
var num = 2;
var i = 0;
while(pattern.test(text)){
if(++i == num){
alert(matches.index);
break;
}
matches = pattern.exec(text);
}

正确的索引应该是 5,但为什么我得到 10?

-_-

最佳答案

您的问题是因为您对 .test().exec() 使用相同的正则表达式,并期望状态不受影响,但是 lastIndex.test() 提前,因此当下一个 .exec() 发生时它不正确。要消除该问题,您可以删除 .test() 然后它就可以工作(并且效率更高):

var text = "cat, bat, sat, fat";
var pattern = /.at/g;
var num = 2, i = 0, matches;
while(matches = pattern.exec(text)){
if(++i == num){
alert(matches.index);
break;
}
}​

这里的工作演示:http://jsfiddle.net/jfriend00/rbWQj/

关于javaScript RegExp 第二个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11532517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com