我有一些功能来捕获字符串中找到的所有URL,这很好并且应该起作用。然而,这不是抓完整的URL与段,如果存在的话(即http://domain.com/somepage/stuff,http://goo.gl/ew34r,http://bit.ly/w9r34等。 )。它将仅提取基本域,而不提取任何尾随的URL段。
如何修改我的正则表达式以包括所有网址段(如果存在)?
var urls = text.match(/\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig);
上面需要提取所有URL变体,例如:
www.domain.com
domain.com
http://www.domain.com
http://www.domain.com/somepage
http://www.domain.com/somepage/morepage
http://www.domain.com/somepage/morepage/*
www.domain.com/somepage
www.domain.com/somepage/morepage
www.domain.com/somepage/morepage/*
domain.com/somepage
domain.com/somepage/morepage
domain.com/somepage/morepage/*
URI显然可以包含数字。
经过一番挣扎,我明白了。
var sumbittedUrls ="test.com http://another.us/one/1/three/four/five/six";
var urls = sumbittedUrls.match(/\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})(.*)/g);
console.log(urls);
//log -> ["test.com http://another.us/one/1/three/four/five/six"]
这是工作中的小提琴。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句