Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用regex和window.location.href.indexOf()以url路径中的特定文件夹为目标?_Javascript_Jquery_Regex_Regex Negation_Ab Testing - Fatal编程技术网

Javascript 如何使用regex和window.location.href.indexOf()以url路径中的特定文件夹为目标?

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个文件夹中有任何值,则只运行代

我正在做一个a/b测试,目标是在网站的不同级别中具有相同类名的元素:

e、 g url:www.sitename.com/service-provided/state/region/city

当我进入城市级页面时,我不希望我的代码针对特定元素运行。有100个不同的城市,所以要排除的url列表不是理想的方法

有没有办法使用window.location.href.indexOf()和regex只针对路径的前三个文件夹

下面是我试图实现的一个示例,如果url在路径的前3个文件夹中有任何值,则只运行代码,如果路径进入第4个(城市)文件夹,则不运行代码

我愿意接受任何其他可能有效的方法

谢谢

使用的解决方案:

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语句中的代码。