URL Padanan: Pendekatan Ungkapan Biasa Komprehensif
Apabila mengekstrak URL daripada input, adalah penting untuk mempunyai ungkapan biasa yang mantap yang boleh mengendalikan pelbagai senario. Dalam kes ini, ungkapan biasa yang disediakan gagal padan dengan URL tanpa awalan protokol "http" atau "https". Untuk menangani cabaran ini, kami mencadangkan dua ungkapan biasa alternatif:
Untuk URL yang Memerlukan Protokol HTTP/HTTPS:
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Untuk URL Tanpa HTTP /Keperluan Protokol HTTPS:
[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Ungkapan biasa ini menangkap URL dengan berkesan atau tanpa awalan protokol. Untuk tujuan percubaan, anda boleh menguji ungkapan ini di http://regexr.com?37i6s (dengan awalan protokol) dan http://regexr.com/3e6m0 (tanpa awalan protokol).
Di bawah ialah contoh Pelaksanaan JavaScript:
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 Mencipta Ungkapan Biasa Teguh untuk Memadankan URL dengan dan tanpa Awalan Protokol?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!