Rumah > Soal Jawab > teks badan
P粉3990907462023-08-23 00:35:02
Anda menggunakan objek RegExp
dan melaksanakannya beberapa kali. Pada setiap pelaksanaan, ia diteruskan dari indeks padanan terakhir.
Sebelum setiap pelaksanaan, anda perlu "set semula" regex untuk bermula dari awal:
result.push(re.test('Foo Bar')); re.lastIndex = 0; result.push(re.test('Foo Bar')); // 现在的结果是 [true, true]
Apa yang dikatakan, mungkin lebih mudah dibaca untuk mencipta objek RegExp baharu setiap kali (overhead sedikit kerana RegExp sudah dicache):
result.push((/Foo B/gi).test(stringA)); result.push((/Foo B/gi).test(stringB));
P粉5233350262023-08-23 00:21:13
Digunakan dengan g
标志的 RegExp
对象会跟踪匹配发生的 lastIndex
jadi dalam perlawanan seterusnya ia akan bermula dari indeks terakhir digunakan dan bukannya bermula dari 0. Lihat contoh:
var query = 'Foo B'; var re = new RegExp(query, 'gi'); console.log(re.lastIndex); console.log(re.test('Foo Bar')); console.log(re.lastIndex); console.log(re.test('Foo Bar')); console.log(re.lastIndex);