匹配一段文本中URL的正則問題

在項目中有個這樣的設計,備註中的URL自動識別為點擊的鏈接,對此的處理方式是用正則匹配出URL部分,然後替換成<a href=URL>URL這樣即可。其主要部分是正則匹配出URL部分。

假設有這麼一段文本。

你好,我是一段文本。我鏈接到http://leeiio.me/test.html請大家多多指教。

那麼我們可以這麼寫。

var text = "你好,我是一段文本。我鏈接到http://leeiio.me/test.html請大家多多指教。";
var regexp = /((http|ftp|https|file):\/\/([\w\-]+\.)+[\w\-]+(\/[\w\-\.\/?\@\%\!\&=\+\~\:\#\;\,]*)?)/ig;
text = text.replace(regexp,"<a href='$1'>$1</a>");
console.log(text);

但是如果URL中帶有中文,那麼以上的就不頂事了。

12 Responses to 匹配一段文本中URL的正則問題

  1. Kars says:

    正好需要啊!及時雨!

  2. 路人甲 says:

    欣賞樓主,支持樓主,頂樓主!你太帥了!

  3. 光電轉速表 says:

    又學了一招

  4. 博主辛苦了。小弟路過

  5. 什麼 says:

    真的這樣就行了么

  6. 安卓匯 says:

    學習了,正好要用到這個,謝謝

  7. mz says:

    這幾條正則考慮得還不是很完整
    如果有
    http://中文網站。com/flkasjd/ 這樣的無聊網址的話就出錯啦(中文網址基本沒見過啊),不過這樣有些鑽牛角尖 😯 。
    所以添上判斷比較好
    (\w+\:\/{2}[\w.]+\/[^'"\s]+)

  8. 很實用的一個技巧

  9. Pingback: Homepage

Leave a Reply

Your email address will not be published. Required fields are marked *