我正在使用这个正则表达式,到目前为止一直很好......
var r = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
但如果我有一个如下的字符串......
'<div>http://www.a-random-site.com/page1-blah-blah</div>Another bit of text'
然后匹配的位将是......
http://www.a-random-site.com/page1-blah-blah</div>Another
如何改变正则表达式以考虑角度化的bracked可以终止链接?
答案 0 :(得分:1)
我编辑了 saram 的regex pattern
并通过 Expresso 对其进行了测试,并且它与您的示例一起使用了:
(?:http|ftp|https):\/\/[\w\-_]+(?:\.[\w\-_]+)+(?:[\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
答案 1 :(得分:0)
我不知道是否有简单的方法来修复你的正则表达式。我只是将此代码用于url:
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
来源link