如何使JS/Jquery中带有window.location.pathname的if语句在路径名之后不包含任何内容?
我正在尝试获取此URL“http://www.example.com/womens-collection/ceramic要重定向到URLhttp://www.example.com/the-ceramic". 下面是代码如何使JS/Jquery中带有window.location.pathname的if语句在路径名之后不包含任何内容?,jquery,Jquery,我正在尝试获取此URL“http://www.example.com/womens-collection/ceramic要重定向到URLhttp://www.example.com/the-ceramic". 下面是代码 if(window.location.pathname == "/womens-collection/ceramic") { //alert("worked"); document.location = "/the-ceramic"; //$('#jb
if(window.location.pathname == "/womens-collection/ceramic") {
//alert("worked");
document.location = "/the-ceramic";
//$('#jbw-spot-mobile_details').toggleClass('opened')}
工作正常,但我不希望产品的任何其他URL受此影响,如“http://www.example.com/womens-collection/ceramic?page=shop.product_details"
如何让jquery只识别“/女性收藏/陶瓷”,而不识别其后的任何内容?返回QS部分
if(window.location.pathname == "/womens-collection/ceramic")
{
if(!window.location.search)
{
// do your thing
}
}
只需在路径的末尾使用正则表达式进行匹配。是否使用一些后端代码?例如,PHP或ASP或其他什么?检查是否存在任何查询字符串或执行子字符串,并找到URL中出现的“?”应在服务器端处理,否则您服务一个页面只是为了拒绝它,并将其替换为另一个页面,您还必须服务另一个页面。您希望在客户端执行此类操作的唯一原因是(a)服务器端环境不足(b)无法访问服务器端环境(c)重定向取决于用户与原始服务页面的交互。为什么不合并if语句?@adammerifield。可以,代码只是为了演示。OP/读者可以使用他们的首选项。'if(window.location.pathname==”/advanced_search/?with=“){alert(“worked”)}如何使用“?”with=“work”生成路径名?如果结尾有斜杠、问号(不带参数)或散列,该怎么办?然后将正则表达式更改为/(/womens collection/陶瓷[#?/])$/或/(/womens collection/陶瓷[#?/]))美元/或其他感觉。
regex = /(/womens-collection/ceramic)$/i; // Using the i flag for case insensitivity. Feel free to remove if you want.
path = window.location.pathname;
if (path.match(regex)) {
// Do stuff.
}