如何删除 JS 正则表达式中的模式?
How to remove a pattern in 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]} garbage! `);
}
}
这样显示domain.tld:
"Enough with this domain.tld garbage!".
我怎么去掉.tld
,所以最后的结果是:
"Enough with this domain garbage!".
A /[domain]@.2,/
正则表达式可能与 .com
或 co.uk
之类的 tld 不匹配,并且只有 "domain" 会出现在警报中,但我不知道如何实现这样的确认中 sites[i]
的正则表达式。
你知道吗?
需要说的是,这是一个漫长而丑陋的方式,但我想告诉你,没有正则表达式也是可能的:
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!");
这取决于您的字符串的复杂程度,但域的简单匹配可能如下所示:
str.replace(/(\.[a-zA-Z]{1,3}){1,2}/, '')
这适用于 "domain.com"、"domain.co.uk"、"domain.es" 的大多数示例。您也许可以找到更好的正则表达式,但思路是一样的。
以下代码隐藏某个网站的所有网页并模拟该网站。
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]} garbage! `);
}
}
这样显示domain.tld:
"Enough with this domain.tld garbage!".
我怎么去掉.tld
,所以最后的结果是:
"Enough with this domain garbage!".
A /[domain]@.2,/
正则表达式可能与 .com
或 co.uk
之类的 tld 不匹配,并且只有 "domain" 会出现在警报中,但我不知道如何实现这样的确认中 sites[i]
的正则表达式。
你知道吗?
需要说的是,这是一个漫长而丑陋的方式,但我想告诉你,没有正则表达式也是可能的:
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!");
这取决于您的字符串的复杂程度,但域的简单匹配可能如下所示:
str.replace(/(\.[a-zA-Z]{1,3}){1,2}/, '')
这适用于 "domain.com"、"domain.co.uk"、"domain.es" 的大多数示例。您也许可以找到更好的正则表达式,但思路是一样的。