【问题标题】:Javascript regular expression for URLURL 的 Javascript 正则表达式
【发布时间】:2013-05-03 20:38:03
【问题描述】:

有人可以帮助我构建正则表达式以使用以下字符串中的正则表达式提取几个 URL

'<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

【问题讨论】:

  • 我假设您实际上不是在这里处理字符串,而是在文档中的某处处理 &lt;a&gt; 元素?

标签: javascript regex


【解决方案1】:

问题在于.* 也与" 匹配。

您应该能够将.* 替换为[^\"]* 以匹配除" 之外的任何字符。

我这里没有办法测试,希望对你有帮助。

【讨论】:

  • 很抱歉,我无法投票。所以说我需要至少 15 名声望才能投票:(
【解决方案2】:

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

【讨论】:

  • 这就是我想要做的。匹配 url 并将其替换为另一个 url。但我的正则表达式匹配到最后一个双引号而不是第一个双引号
【解决方案3】:

怎么样

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

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

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 2010-11-27
    • 2011-02-19
    • 2013-08-24
    • 2019-07-20
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多