匹配一段文本中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 *