如何检测给定字符串中的URL并仅返回该特定URL - Javascript

时间:2018-02-11 18:25:16

标签: javascript

我正在开发Chrome扩展程序。我想要完成的是,当我打开收到的电子邮件时,应该检测到电子邮件文本中的URL,并且警告框应该显示从文本返回的URL。到目前为止我所做的是:

function urlify(text) {
    var urlRegex = /(https?:\/\/[^\s]+)/g;
    return text.replace(urlRegex, function(url) {
        return url;
    })
}
var text = document.getElementsByClassName("adn ads")[0].innerText;
var html = urlify(text);

此代码检测URL,但也返回其余文本。我只想让这个函数返回指定检测到的URL。

2 个答案:

答案 0 :(得分:1)

我发现一个非常简单的解决方案:

function urlify(text) {
    var urlRegex = /(https?:\/\/[^\s]+)/g;
    return text.match(urlRegex, function(url) {
        return url;
    })
}
var text = document.getElementsByClassName("adn ads")[0].innerText;
var html = urlify(text);
console.log(html[0]);

答案 1 :(得分:0)

您可以使用String#match来获取匹配的网址。它返回一个数组,因此您可以移出第一个值来获得匹配值。



function urlify(text) {
  return text
    .match(/(https?:\/\/[^\s]+)/m)
    .shift()
}
var text = 'some text https://stackoverflow.com some more text'

console.log(
  urlify(text)
)