URL的Javascript正则表达式

时间:2013-05-09 11:23:33

标签: javascript regex

有人可以帮我构建正则表达式,使用下面字符串

中的正则表达式提取几个URLS
'<a href="http://mydmncd.app.corp:8080/ag/ps?q=C~0~0~0~0~0~v2hgsds4-0Ds43Hg~94~0~~~1~0~0~~http%3a%2f%2fnghj.com" target="_blank"><img border=0   
src="mydmncd.app.png" ALT="" clickUrl="http://mydmncd.app2.corp?q=1&f=4"/></a>'

网址始终以http://mydmncd开头,其余部分可能会有所不同。我必须提取网址,直到找到双引号。在上面的例子中,我必须提取http://mydmncd.app.corp:8080/ag/ps?q=C~0~0~0~0~0~v2hgsds4-0Ds43Hg~94~0~~~1~0~0~~http%3a%2f%2fnghj.com

我尝试使用此正则表达式/[http://mydmncd].*"/g,但它匹配最后的双引号。我也试过/[http://mydmncd].*\s/g但没有运气。

请参阅JSFiddle

3 个答案:

答案 0 :(得分:1)

问题是.*也与"匹配。

您应该可以.*替换[^\"]*以匹配"以外的任何字符。

我没有办法在这里测试,希望能帮到你。

答案 1 :(得分:0)

我相信您希望将其捕获为子表达式,以后可以将其作为捕获组引用。正则表达式:/\([http://mydmncd].*\)"/g。然后可以将其引用为\1wikipedia page还有更多话要说。

答案 2 :(得分:0)

怎么样

/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/

例如?它适合您的需求吗?