Jquery检查String是否包含任何URL并获取它

时间:2016-01-28 02:02:11

标签: javascript jquery regex

我想从字符串中获取网址,但我不熟悉正则表达式或任何此类方法的使用。

例如我有3个字符串,

  1. "我已导航到www.facebook.com";
  2. "我已导航到www.facebook.com和www.google.com";
  3. "我已导航到https://www.facebook.com;
  4. 在我的情况下:我应该得到" www.facebook.com"作为从第一个字符串中提取的url。

    我想要的只是获取字符串中的第一个url,这样我就可以使用我找到的API进行链接预览。但我正在努力使用Javascript或Jquery获取网址。该字符串将从文本框中获取,我想获取keyup上的url。

1 个答案:

答案 0 :(得分:2)

您可以使用此功能提取给定字符串中的第一个URL:

function getFirstUrl(string) {
    var pattern = /(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;
    var match = string.match(pattern);
    return match[0];
}

var string = "I've nagivated to www.facebook.com and to www.google.com";
var url = getFirstUrl(string);
// url === 'www.facebook.com'

我从this answer获得了正则表达式模式并对其进行了修改,使https://部分可选。