2017-10-07 91 views
0

以下代码隐藏了某个网站的所有网页并嘲笑该网站。如何删除JS Regex中的模式?

let sites = ['mako.co.il', 'walla.co.il']; 

for (let i = 0; i < sites.length; i++) { 
    if (window.location.href.indexOf(sites[i]) != -1) { 

    alert(` Enough with this ${sites[i]} shit! `); 
    } 
} 

它显示使用domain.tld这样: “够了这种使用domain.tld狗屎”

我怎么能除掉那些.tld,所以最后的结果将是:

“够了与此域狗屎!”。

一个/[domain]@.2,/正则表达式可能UNMATCH顶级域名的像.comco.uk,只有“域”将出现在戒备,但我不知道如何实现这样的正则表达式来在确认了sites[i]

你知道吗?

回答

0

这取决于多么复杂的字符串可以得到,但对于域名简单匹配,可能会是如下:

str.replace(/(\.[a-zA-Z]{1,3}){1,2}/, '') 

该W对于“domain.com”,“domain.co.uk”,“domain.es”的大多数例子都不合适。你可能能找到更好的正则表达式,但这个想法是一样的。

0

需要说的,那这是一个漫长而丑陋的方式,但我想告诉你,它是可能没有正则表达式:

function splitDomain(str) { 
 
    var beforeDomain = str.split(" domain"); 
 
    var afterDomain = beforeDomain[1].split(" ").splice(1, 1); 
 
    beforeDomain.splice(1, 1); 
 
    beforeDomain.push("domain") 
 
    afterDomain.forEach(function(item) { 
 
    beforeDomain.push(item); 
 
    }) 
 
    var final = beforeDomain.join(" ") 
 
    console.log(final); 
 
} 
 

 
splitDomain("Enough with this domain.tld shit!"); 
 
splitDomain("Enough with this domain.co.uk shit!"); 
 
splitDomain("Enough with this domain.com shit!");