Ungkapan Biasa yang Diperbaiki untuk URL Padanan
Apabila cuba mengesan dan menghuraikan URL daripada input pengguna, adalah penting untuk menggunakan ungkapan biasa yang berkesan. Dalam kes anda, semasa ungkapan semasa anda menangkap beberapa format URL, ia gagal mengambil kira URL yang tidak mempunyai skema protokol yang jelas, seperti www.google.com.
Ungkapan Biasa Disemak
Untuk menangani isu ini dan memastikan padanan URL yang komprehensif, pertimbangkan untuk menggunakan perkara biasa yang disemak berikut ungkapan:
^(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Anatomi Regex
Ungkapan biasa yang disemak ini kurang terhad dan akan berjaya memadankan URL seperti www.google.com, serta URL yang mempunyai protokol eksplisit (mis., http://www.stackoverflow.com).
Contoh Pelaksanaan (JavaScript)
const regex = new RegExp(/(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)g); const url = 'www.google.com'; if (url.match(regex)) { console.log("URL successfully matched."); } else { console.log("URL did not match."); }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meningkatkan Ungkapan Biasa Saya untuk Memadankan URL dengan Lebih Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!