jQuery Regex返回url

jQuery Regex to return url

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What is a good regular expression to match a URL?

从服务器发送的字符串如下:

"嘿,看看这张图片,http://example.com/fantastic.jpg,是不是很好?"

我想要一个像这样的regex函数:

1
2
3
4
function returnUrl(text) {
    regex here ...
    return url;
}

我对雷杰克斯很不好,所以我来这里寻求帮助。请看下图了解我的意思:

stackOverflow automatic url recognize

这是stackoverflow,它会自动更改可单击URL中插入的文本,我想是jquery/regex。

事先谢谢。

编辑:

忘了提一下,这个regex只能用于图像(JPG、PNG等),不能用于所有链接。


您可以这样使用:

1
2
3
4
5
function returnUrl(text) {
     var reg = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
     var url = text.match(reg).toString();
     return url;
}

演示如下:http://jsfiddle.net/4vblh/


一个简单的方法是:

1
https?://[\w-\.\?\#\/]+

一个完整的(我使用的)将是:

1
[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?

最后一个OE精确地来自于匹配URL的好的正则表达式是什么?

编辑

一个简单的直接图像链接(见这里)

1
https?://[\w-\.\/]+(\.jpg|\.jpeg|\.png|\.bmp)


您应该看看如何模拟stackoverflow自动链接行为。

来自regexbuddy库的url regex(不区分大小写):

1
\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]

行动起来看看。