Javascript 如何使用regex和window.location.href.indexOf()以url路径中的特定文件夹为目标?
我正在做一个a/b测试,目标是在网站的不同级别中具有相同类名的元素: e、 g url:www.sitename.com/service-provided/state/region/city 当我进入城市级页面时,我不希望我的代码针对特定元素运行。有100个不同的城市,所以要排除的url列表不是理想的方法 有没有办法使用window.location.href.indexOf()和regex只针对路径的前三个文件夹 下面是我试图实现的一个示例,如果url在路径的前3个文件夹中有任何值,则只运行代码,如果路径进入第4个(城市)文件夹,则不运行代码 我愿意接受任何其他可能有效的方法 谢谢 使用的解决方案:Javascript 如何使用regex和window.location.href.indexOf()以url路径中的特定文件夹为目标?,javascript,jquery,regex,regex-negation,ab-testing,Javascript,Jquery,Regex,Regex Negation,Ab Testing,我正在做一个a/b测试,目标是在网站的不同级别中具有相同类名的元素: e、 g url:www.sitename.com/service-provided/state/region/city 当我进入城市级页面时,我不希望我的代码针对特定元素运行。有100个不同的城市,所以要排除的url列表不是理想的方法 有没有办法使用window.location.href.indexOf()和regex只针对路径的前三个文件夹 下面是我试图实现的一个示例,如果url在路径的前3个文件夹中有任何值,则只运行代
p = window.location.pathname.split('/');
if (p.length < 5) {
$(".className").css({"padding-right":"5%"});
}
p=window.location.pathname.split('/');
如果(p.长度<5){
$(“.className”).css({“padding right”:“5%”);
}
像这样
const someURL=[
“www.sitename.com/按摩/纽约/东海岸/曼哈顿”,
“www.sitename.com/按摩/纽约/东海岸/布朗克斯”,
“www.sitename.com/按摩/texas/south/austin”,
“www.sitename.com/accounting/texas/south/atlanta”,
];
常量firstThreeFolders=/\/([^\/]+\/){3}/;
someURL.forEach(url=>{
log(url.match(firstThreeFolders)[0]);
});代码>像这样
const someURL=[
“www.sitename.com/按摩/纽约/东海岸/曼哈顿”,
“www.sitename.com/按摩/纽约/东海岸/布朗克斯”,
“www.sitename.com/按摩/texas/south/austin”,
“www.sitename.com/accounting/texas/south/atlanta”,
];
常量firstThreeFolders=/\/([^\/]+\/){3}/;
someURL.forEach(url=>{
log(url.match(firstThreeFolders)[0]);
});代码>您可以通过和实现您的目标。通过这种方式,您可以从路径中拉出各个零件:
var p = window.location.pathname.split('/') - 1;
/*
www.sitename.com/service-provided/state/region/city
pathArray = [service-provided, state, region, city]
*/
if (p.length == 4) {
state = pathArray[1];
region = pathArray[2];
city = pathArray[3];
}
你可以通过和实现你的目标。通过这种方式,您可以从路径中拉出各个零件:
var p = window.location.pathname.split('/') - 1;
/*
www.sitename.com/service-provided/state/region/city
pathArray = [service-provided, state, region, city]
*/
if (p.length == 4) {
state = pathArray[1];
region = pathArray[2];
city = pathArray[3];
}
嘿,盖塔农。感谢您尝试改进答案。我想知道你为什么把长度改为4,并在声明中添加了-1。听起来kennyi想在有3个文件夹时执行一个操作。我给出了一个拆分pathArray值的示例。你能再解释一下你的更新吗?谢谢你的帮助。最后,我只需要将路径拆分为一个数组,并使用p.length<3来执行if语句中的代码。感谢您尝试改进答案。我想知道你为什么把长度改为4,并在声明中添加了-1。听起来kennyi想在有3个文件夹时执行一个操作。我给出了一个拆分pathArray值的示例。你能再解释一下你的更新吗?谢谢你的帮助。最后,我只需要将路径拆分为一个数组,并使用p.length<3来执行if语句中的代码。