jQuery正则表达式返回url [重复]
Posted
技术标签:
【中文标题】jQuery正则表达式返回url [重复]【英文标题】:jQuery Regex to return url [duplicate] 【发布时间】:2012-08-22 17:40:28 【问题描述】:可能重复:What is a good regular expression to match a URL?
我有一个从服务器发送的字符串,如下所示:
“嘿,看看这张照片http://example.com/fantastic.jpg,好看吗?”
我想要一个执行以下操作的正则表达式函数:
function returnUrl(text)
regex here ...
return url;
我的正则表达式真的很糟糕,所以我来这里寻求帮助。请看下面的图片以了解我的意思:
这是 *** 自动更改我在可点击 URL 中插入的文本,我想它是 jQuery / regex。
提前致谢。
编辑:
忘了提一下,这个正则表达式应该只适用于图像(jpg、png 等)而不适用于所有链接。
【问题讨论】:
google.at/?q=javascript+regex+url 对不起,我懒得解决,你必须分解你的文本,并用你惊人的正则表达式检查每一行,因为正则表达式在文本中 \n\r 有一些问题 我的错,我没有提到它应该只适用于图像。已编辑。 【参考方案1】:一个简单的:
https?://[\w-\.\?\#\/]+
一个完整的(我使用的)将是:
[-a-zA-Z0-9@:%_\+.~#?&//=]2,256\.[a-z]2,4\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?
而最后一个oe正好来自What is a good regular expression to match a URL?
编辑
一个简单的直接图片链接 (see here)
https?://[\w-\.\/]+(\.jpg|\.jpeg|\.png|\.bmp)
【讨论】:
哎呀,我的错。请看一下编辑。对此感到抱歉。 最后一个很容易为你修改。我同意,这不是最完整的。 好吧,在服务器端进行一些验证,它会像魅力一样工作!谢谢! 其实这个正则表达式有问题,我用的是`var imageUrl = url.match(/https?://[\w-\.\/]+(\.jpg| \.jpeg|\.png|\.bmp)/g); ` 但它给出了一个未捕获的语法错误:意外令牌非法。这是什么?谢谢。 这个问题可能来自复制/粘贴:***.com/questions/5733275/… 尝试手动重写。【参考方案2】:你可以这样使用:
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/
【讨论】:
检查编辑。对此感到抱歉【参考方案3】:你应该看看How to mimic *** Auto-Link Behavior。
来自 RegexBuddy 库的 URL 正则表达式(用作不区分大小写):
\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]
看到它in action。
【讨论】:
以上是关于jQuery正则表达式返回url [重复]的主要内容,如果未能解决你的问题,请参考以下文章