Я ващ не могу понять, что тут происходит.
re=/\w/g
s="*a*a*a*a*"
for(i=0; i<=s.length; i++){
console.log(re.test(s), re.lastIndex)
}
// true 2
// true 4
// true 6
// true 8
// false 0
// true 2
// true 4
// true 6
// true 8
// false 0
А вот так:
re=/\w/g
s="****"
for(i=0; i<=10; i++){
console.log(re.test(s), re.lastIndex)
}
// ::: false 0
// ::: false 0
// ::: false 0
// ::: false 0
// ::: false 0
// ::: false 0
// ::: false 0
// ::: false 0
// ::: false 0
// ::: false 0
// ::: false 0
Объясните логику его работы, плз.
UPD Пораскинул мозгами, и так понял, что он тупо ищет первое вхождение возвратившее true и выходит, а следующая итерация начинается с последнго индекса. То есть, он проходит строку заново на каждой итерации. Зачем это нужно? Каково применение в реальных задачах?