Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mencipta Ungkapan Biasa Teguh untuk Memadankan URL dengan dan tanpa Awalan Protokol?

Bagaimanakah Saya Boleh Mencipta Ungkapan Biasa Teguh untuk Memadankan URL dengan dan tanpa Awalan Protokol?

Barbara Streisand
Lepaskan: 2024-12-24 05:54:17
asal
968 orang telah melayarinya

How Can I Create Robust Regular Expressions to Match URLs with and without Protocol Prefixes?

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()@:%_\+.~#?&//=]*)
Salin selepas log masuk

Untuk URL Tanpa HTTP /Keperluan Protokol HTTPS:

[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
Salin selepas log masuk

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");
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan