Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Mengesan URL, Termasuk URL Bogel?

Bagaimanakah Saya Boleh Menggunakan Ungkapan Biasa untuk Mengesan URL, Termasuk URL Bogel?

DDD
DDDasal
2024-12-12 19:06:15172semak imbas

How Can I Use Regular Expressions to Detect URLs, Including Naked URLs?

Mengesan URL dengan Ungkapan Biasa

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:

  • Ia memastikan URL bermula dengan sama ada "http://" , "https://", atau tiada apa-apa.
  • Ia membenarkan subdomain dengan memasukkan "(www.)" sebagai pilihan awalan.
  • Ia menyokong nama domain sehingga 256 aksara panjang dan domain peringkat atas sehingga 6 aksara.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn