Mengenai masalah pembagian tes string dalam ekspresi reguler, kami umumnya memiliki dua metode: test () dan exec (). Saya tidak akan menguraikan perbedaan antara kedua metode ini. Hal utama adalah bahwa test () mengembalikan nilai boolean dan exec () mengembalikan array karakter yang cocok. Namun, hari ini saya mengalami masalah. Programnya sangat sederhana, tetapi masalah di dalamnya membuat saya tidak bisa mengerti. Saya tidak menemukan jawabannya secara online (dibandingkan secara pribadi).
Salinan kode adalah sebagai berikut:
var pola = regexp baru ("cocok", "ig");
peringatan (pola.test ("cocok"));
peringatan (pola.exec ("match"));
Nilai peringatan pertama () benar seperti yang diharapkan
Tapi nilai tes kedua secara tak terduga nol
Saya tidak tahu apa prinsipnya tentang pertanyaan ini, karena saya tidak melihat kode sumber fungsi. Jika seorang teman dapat menunjukkannya, saya bersyukur! Lai