正则表达式使用JavaScript匹配网址

时间:2013-04-25 10:29:19

标签: javascript regex

我正在使用这个正则表达式,到目前为止一直很好......

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可以终止链接?

2 个答案:

答案 0 :(得分:1)

我编辑了 saram regex pattern并通过 Expresso 对其进行了测试,并且它与您的示例一起使用了:

(?:http|ftp|https):\/\/[\w\-_]+(?:\.[\w\-_]+)+(?:[\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?

答案 1 :(得分:0)

我不知道是否有简单的方法来修复你的正则表达式。我只是将此代码用于url:

(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?

来源link

Working example