添加正文 class 基于地址栏中的 url

Adding a body class based on url in address bar

问题

我想将 body class 添加到两种不同类型的页面:

1) 匹配 url 的页面:example.com/shop/

2) url 中 /shop/ 之后的页面:example.com/shop/asdfjkl, example.com/shop/item-2342, etc.


到目前为止,我已经使用以下代码解决了第一个问题:

  if(window.location.href.match('example.com/shop/')){
    jQuery('body').addClass('shop');
  }

但是,这也会将 shop class 添加到任何以 example.com/shop/ 开头的 url(请参阅问题 #2)


问题

如何将单独的 shop-item class 添加到 url 中 after /shop/

您可以为此使用正则表达式:

if( window.location.href.match(new RegExp('example.com/shop/.+')) ) {
    $('body').addClass('shop-item');
} else if (window.location.href.match('example.com/shop/')) {
    $('body').addClass('shop');
}