Rumah  >  Artikel  >  hujung hadapan web  >  Fungsi tersuai JavaScript dan PHP yang menukar alamat URL dalam teks kepada kemahiran links_javascript yang boleh diklik

Fungsi tersuai JavaScript dan PHP yang menukar alamat URL dalam teks kepada kemahiran links_javascript yang boleh diklik

WBOY
WBOYasal
2016-05-16 16:40:511933semak imbas

Apabila menulis program kecil hari ini, saya perlu menggunakan ungkapan biasa untuk memadankan alamat URL dalam input teks oleh pengguna, dan kemudian menggantikan alamat URL dengan pautan boleh klik. Padanan alamat URL, saya fikir ini sepatutnya menjadi sesuatu yang sering digunakan oleh semua orang dalam pemprosesan pengesahan Berikut ialah ungkapan yang agak lengkap yang saya sepadukan:

Salin kod Kod adalah seperti berikut:

var URL = /(https?://|ftps?://)?((d{1,3}.d{1,3}.d{1,3}.d{1,3})(: [0-9] )?|(localhost)(:[0-9] )?|([w] .)(S )(w{2,4})(:[0-9] )?)(/ ?([w#!:.? =&%@!-/] ))?/ig;

Ungkapan ini boleh memadankan alamat URL http, https, ftp, ftps dan alamat IP. Ia masih merupakan pengiraan padanan alamat URL yang agak lengkap. Menggunakan ungkapan ini, saya menulis dua fungsi kecil untuk menggantikan alamat URL mesej pengguna dengan pautan yang boleh diklik. Saya hanya menggunakan fungsi replace() JavaScript untuk menggantikan URL dengan pautan:

Versi JavaScript:

Salin kod Kod adalah seperti berikut:

/**
*Versi JavaScript
* Tukar alamat URL kepada kod pautan tag A lengkap
,*/
var replaceURLToLink = fungsi (teks) {
text = text.replace(URL, function (url) {
            var urlText = url;
Jika (!url.match('^https?://')) {
               url = 'http://' url;
            }
                kembali '' urlTeks '';
});

kembalikan teks;
};

Versi PHP:

Salin kod Kod adalah seperti berikut:

/**
* Versi PHP diubah suai berdasarkan kod Silva
* Tukar alamat URL kepada kod pautan tag A lengkap
,*/
/**=============================================
 NAMA        : replace_URLtolink()
 VERSI     : 1.0
 PENULIS      : J de Silva
 DESCRIPTION : mengembalikan VOID; mengendalikan penukaran
 URL ke dalam pautan boleh klik daripada rentetan.
 JENIS        : fungsi
 =============================================*/

fungsi replace_URLtolink($text) {
    // ambil apa sahaja yang kelihatan seperti URL...
    $urls = array();
   
    // membina corak
    $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 = '(/?([w#!:.? =&%@!-/] ))?';
    $pattern = $skema.'('.$ip.$port.'|'.$www.$name.$tld.$port.'|'.$local.$port.')'.$the_rest;
    $pattern = '/'.$pattern.'/is';
   
    // Dapatkan URL
    $c = preg_match_all($pattern, $text, $m);
   
    jika ($c) {
        $urls = $m[0];
    }
   
    // Gantikan semua URL
    jika (! kosong($urls)) {
        foreach ($url sebagai $url) {
            $pos = strpos('http://', ​​$url);
           
            jika (($pos && $pos != 0) || !$pos) {
                $fullurl = 'http://'.$url;
            } lain {
                $fullurl = $url;
            }
           
            $pautan = ''.$url.'';
           
            $text = str_replace($url, $link, $text);
        }
    }
   
    kembalikan $text;
}

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