Cara sederhana untuk menggunakan keteraturan untuk menentukan apakah inputnya adalah angka:
input1 = '0281234567'; input2 = '0282345678'; var reg = /^/d+$/g;reg.test(input1); //truereg.test(input2); //PALSU
Saya menemukan bahwa nilai yang dikembalikan selama tes kedua tidak benar. Setelah mengecualikan berbagai faktor gangguan seperti kesalahan penulisan, kegagalan untuk mendapatkan nilai, dll., Saya menemukan bahwa reg reguler tidak dapat dieksekusi dengan benar hanya selama eksekusi kedua dari eksekusi kedua REG. Saya belum pernah mengalami masalah ini sebelumnya, jadi saya mencari informasi yang relevan.
Ternyata masalah ini sebenarnya disebabkan oleh /g, dan saya mengetahui bahwa saya benar -benar menyalahgunakan /g untuk aturan ini. Karena /G mewakili pencocokan global, ada LastIndex di dalam ketika menilai aturan untuk merekam posisi pertandingan terakhir. Saat panggilan berulang, LastIndex akan terus cocok, yang akan menyebabkan kesalahan penilaian. Jika Anda memahami prinsip dan menyelesaikannya, itu akan jelas:
1. Hapus /g, dan jangan tambahkan /g tanda sesuka hati jika /g tidak diperlukan
2. Sebelum pertandingan kedua, atur lastIndex secara manual ke 0. Misalnya di atas: Reg.LastIndex () = 0.
Di atas adalah solusi bahwa tes reguler () tidak dapat dieksekusi dengan benar karena penyalahgunaan /g dalam javascript yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!