【问题标题】:Extract URL from string javascript [duplicate]从字符串javascript中提取URL [重复]
【发布时间】:2013-09-06 02:30:13
【问题描述】:

这是我只想从中提取 URL 的变量,例如,在这种情况下,我希望最后得到结果:http://url.com/index.php/foo/bar/new/key/34941cd947592adb1594b6f649468a33/

var variable = "function onclick(event) { setLocation('http://url.com/index.php/foo/bar/new/key/34941cd947592adb1594b6f649468a33/')}"

【问题讨论】:

  • 为什么要将 JavaScript 作为字符串存储在 JavaScript 变量中?函数也是对象,你可以把它们赋值给变量var foo = function(){}
  • @elclanrs 如果他将其作为函数而不是字符串进行,他将如何从中提取 URL?
  • @Barmar 我想他想问的是这个变量是如何以一段代码结束的。

标签: javascript jquery parsing url


【解决方案1】:

使用这个:

var testUrl = variable.match(/'(http:[^\s]+)'/),
    onlyUrl = testUrl && testUrl[1];

onlyUrl 变量包含提取的 URL 或 null

编辑:

以前只是对 OP 的回答。在更新后照顾 https:

var testUrl = variable.match(/'(https?:[^\s]+)'/),
    onlyUrl = testUrl && testUrl[1];

【讨论】:

  • 很好的丹尼尔,非常感谢!
  • +1。通过不依赖RegExp.$1 并确保在无法匹配 URL 时没有错误,我改进了答案。
  • 在这种情况下使用.exec 可能会更好
  • @DGS 我不明白这会让事情变得更简单。
  • 其实这个答案并不完全正确。生成的onlyUrl 变量还包含URL 之后 的所有文本。此外,如果 URL 的方案不是 http(例如 https),这将失败。
猜你喜欢
  • 2019-06-17
  • 1970-01-01
  • 2018-08-30
  • 2022-11-23
  • 2016-08-02
  • 2013-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多