Saat menulis program mini hari ini, Anda perlu menggunakan ekspresi reguler untuk mencocokkan alamat URL dalam teks yang dimasukkan oleh pengguna, dan kemudian mengganti alamat URL dengan tautan yang dapat Anda klik. Saya pikir inilah yang sering Anda gunakan dalam pemrosesan verifikasi. Di sini saya akan memberikan ekspresi yang relatif lengkap yang saya terintegrasi:
Salinan kode adalah sebagai berikut:
var url = /(https?:////|ftps?:////)?((/d{1,3}/./d{1,3}/./d{1,3}/./d{1,3}/./d.1,3 --)(: media0-9 media+)? ?|(l ocalhost) (: [0-9]+)? | ([/w]+/.) (/s+) (/w {2,4}) (: [0-9]+)?) (//? ([/W#!:?+= &%@!/-//])))?/ig;
Ekspresi ini dapat mencocokkan alamat URL HTTP, HTTPS, FTP, FTP dan alamat IP. Ini masih cukup sempurna untuk pencocokan alamat URL. Dengan menggunakan ungkapan ini, saya menulis dua fungsi kecil untuk mengganti alamat URL pesan pengguna dengan tautan yang dapat diklik. Tidak ada yang terlalu sulit. Ini adalah menggunakan fungsi JavaScript () untuk mengimplementasikan URL penggantian untuk menautkan:
Versi JavaScript:
Salinan kode adalah sebagai berikut:
/**
* Versi JavaScript
* Konversi alamat URL menjadi kode tautan lengkap A-tagged
*/
var REPLEURLTOLINK = function (Text) {
text = text.replace (url, function (url) {
var urltext = url;
if (! url.match ('^https?: ////')) {
url = 'http: //' + url;
}
return '' + urltext + '';
});
mengembalikan teks;
};
Versi PHP:
Salinan kode adalah sebagai berikut:
/**
* Versi PHP dimodifikasi berdasarkan kode SILVA
* Konversi alamat URL menjadi kode tautan lengkap A-tagged
*/
/** ==================================================================
Nama: REPLACE_URLTOLINK ()
Versi: 1.0
Penulis: J de Silva
Deskripsi: Returns Void; menangani konversi
URL ke tautan yang dapat diklik dari string.
Jenis: Fungsi
===========================================================*//
Function Replice_urlTolink ($ text) {
// ambil apapun yang terlihat seperti url ...
$ urls = array ();
// Bangun polanya
$ scheme = '(https?/: //// | ftps?/: ////)?';
$ www = '([/w]+/.)';
$ local = 'localhost';
$ ip = '(/d.1,3}/./d.1,3}/./d.1,3}/./d.1,3})';
$ name = '([/w0-9]+)';
$ tld = '(/w {2,4})';
$ port = '(: [0-9]+)?';
$ the_rest = '(//?(uarkan/w#!:.?+=&%@ !-// 5))?';
$ pola = $ skema. '('. $ ip. $ port. '|'. $ www. $ name. $ tld. $ port. '|'. $ local. $ port. ')'. $ the_rest;
$ pola = '/'.$pattern.'/is';
// Dapatkan URL
$ c = preg_match_all ($ pola, $ text, $ m);
if ($ c) {
$ urls = $ m [0];
}
// ganti semua URL
if (! kosong ($ urls)) {
foreach ($ url sebagai $ url) {
$ pos = strpos ('http/: ////', $ url);
if (($ pos && $ pos! = 0) ||! $ pos) {
$ fullUrl = 'http: //'.$url;
} kalau tidak {
$ fullUrl = $ url;
}
$ link = ''. $ url. '';
$ text = str_replace ($ url, $ link, $ text);
}
}
mengembalikan $ teks;
}