Javascript regexp未正确剪切url
我有下面的代码,这让我有些头疼,因为在纸上看起来一切都很好,但当我把它付诸实践时,它给了我奇怪的结果 代码的目的是在变量“domainurlcut”中获取页面的URL并对其进行剪切,然后检查URL是否包含前缀“www”。如果包含前缀,则将其删除。 如果我使用regexp,一切正常:Javascript regexp未正确剪切url,javascript,regex,Javascript,Regex,我有下面的代码,这让我有些头疼,因为在纸上看起来一切都很好,但当我把它付诸实践时,它给了我奇怪的结果 代码的目的是在变量“domainurlcut”中获取页面的URL并对其进行剪切,然后检查URL是否包含前缀“www”。如果包含前缀,则将其删除。 如果我使用regexp,一切正常: domainurlcut = /\w+\.\w+/g.exec(domainurlcut); 但问题是,如果url是www.google.co.uk,它就不起作用。它只会将其剪切到google.co 可以使用www
domainurlcut = /\w+\.\w+/g.exec(domainurlcut);
但问题是,如果url是www.google.co.uk,它就不起作用。它只会将其剪切到google.co
可以使用www.google.com,因为它将返回google.com
我试图通过将该regexp修改为下面的一个(目前在下面的代码中有注释)来解决这个问题
这解决了www.google.co.uk的问题,但我还有另一个问题。
例如,如果我在域www.thingiverse.com中进行测试,则警报的输出预期为
"thingiverse.com"
而是:
"thingiverse.com,thingiverse"
你能帮我弄明白怎么了吗?
通过检查它的regexp,“应该”工作正常
完整代码如下:
var domainurlcut = /(\w*\.+)+\w*/g.exec(window.location.href);
if (/(www.)/g.test(domainurlcut)){
domainurlcut = /\.\w*.\w*.\w+/g.exec(domainurlcut);
// domainurlcut = /\w+\.\w+.\w+/g.exec(domainurlcut);
domainurlcut = /\w+\.\w+/g.exec(domainurlcut);
}
domainurlcut = domainurlcut[0];
alert(domainurlcut);
试试这个
var url;
url = 'www.thingiverse.com'
url = 'www.google.co.uk'
var domainurlcut = /(\w*.)([\w.-\/]*)/.exec(url);
console.log(domainurlcut);
var result = domainurlcut[2];
alert(result);
为什么要使用regexp?以及为什么要删除
www
?JFYI,有些网站如果没有www
就无法运行,我宁愿使用location.host
属性,如果它以www.
开头,那么修剪它,你就可以使用doneHi@jtrs,几乎可以用了。我将其添加到我的代码中,并成功地将其输出。google.co.uk和.thingiverse.com我现在需要删除域名前面的点,并将其与现有代码集成以修复它。太棒了,谢谢你!
var url;
url = 'www.thingiverse.com'
url = 'www.google.co.uk'
var domainurlcut = /(\w*.)([\w.-\/]*)/.exec(url);
console.log(domainurlcut);
var result = domainurlcut[2];
alert(result);