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,它会自动更改可单击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+&@#/%=~_|$] |
行动起来看看。