这必须被问过一百万次,但我无法找到符合我需求的解决方案。
我需要正则表达式来检查一个字符串是否包含一个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;
这可以检索:
但我需要修改它,以便它还可以检索刚刚以www:
开头的网址怎么做?我和正则表达式相比真的很棒...
答案 0 :(得分:0)
这样的事情可能有所帮助:
/(((ftp|https?):\/\/|www\.)[continue from here]/
这将启动允许ftp://
,http://
,https://
或www.
答案 1 :(得分:0)
尝试这种方式匹配不同格式的网址。赞,
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.
}