2017-10-07 11 views
0

次のコードは、特定のWebサイトのすべてのWebページを隠し、そのWebサイトをモックします。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,/正規表現は、TLDの.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!");

関連する問題