Kod semasa anda gagal padan dengan URL bogel, yang tidak mempunyai awalan "http://". Untuk menangani perkara ini, pertimbangkan untuk menggunakan ungkapan biasa yang komprehensif:
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Ungkapan dipertingkat ini termasuk ciri berikut:
Bagi mereka yang tidak memerlukan protokol HTTP dalam perlawanan mereka, ungkapan alternatif tersedia:
[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Untuk menunjukkan kefungsian ungkapan ini, lihat alat ujian dalam talian di http://regexr.com?37i6s (untuk ungkapan pertama) atau http://regexr.com/3e6m0 (untuk ungkapan yang kurang ketat).
Berikut ialah contoh pelaksanaan JavaScript menggunakan ungkapan biasa yang lebih komprehensif :
const expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi; const regex = new RegExp(expression); const t = 'www.google.com'; if (t.match(regex)) { alert("Successful match"); } else { alert("No match"); }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Mengesan URL, Termasuk URL Bogel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!