Javascript JS正则表达式检查url

Javascript JS正则表达式检查url,javascript,regex,Javascript,Regex,这个问题已经被问过无数次了,但我找不到一个适合我需要的解决方案 我需要正则表达式来检查字符串是否包含url,然后获取它。所以我有这个: var regexToken = /(((ftp|https?):\/\/)[\-\w@:%_\+.~#?,&\/\/=]+)|((mailto:)?[_.\w-]+@([\w][\w\-]+\.)+[a-zA-Z]{2,3})/g; while( (matchArray = regexToken.exec( source )) !==

这个问题已经被问过无数次了,但我找不到一个适合我需要的解决方案

我需要正则表达式来检查字符串是否包含url,然后获取它。所以我有这个:

    var regexToken = /(((ftp|https?):\/\/)[\-\w@:%_\+.~#?,&\/\/=]+)|((mailto:)?[_.\w-]+@([\w][\w\-]+\.)+[a-zA-Z]{2,3})/g;

    while( (matchArray = regexToken.exec( source )) !== null )
    {
        var result = matchArray[0];

    }

    return result;
这可以检索:

  • http(s)|
  • http(s)|
  • http(s)|
但我需要修改它,以便它也可以检索仅以www开头的url:

  • www.domain.com/with/path

怎么做?我真的不懂正则表达式…

像这样的东西可能会有帮助:

/(((ftp|https?):\/\/|www\.)[continue from here]/

这将启动匹配,允许
ftp://
http://
https://
www.

尝试通过这种方式匹配不同格式的url。例如

 var re = /^((ftp|https?):\/\/|www\.).*/gm;
    var str = 'http://domain.com\nhttps://domain.com\nftp://domain.com\nftp://www.domain.com\nhttp://www.domain.com\nhttps://www.domain.com\nhttp://www.domain.com/with/path\nhttps://www.domain.com/with/path\nftp://www.domain.com/with/path\nwww.domain.com/with/path \n\n';
    var m;

    while ((m = re.exec(str)) != null) {
    if (m.index === re.lastIndex) {
    re.lastIndex++;
    }
    // View your result using the m-variable.
    // eg m[0] etc.
    }


检查一下,我不知道这对我有什么帮助?看看这个