检查确切的URL

时间:2017-01-31 22:36:13

标签: javascript jquery

我在检查网站页面中的网址时遇到问题。 这就是我所拥有的。

检查确切的字符串效果很好:

var url = location.pathname;
if ("url:contains('texas-ignition-interlock')") {
  $("body").addClass("texas-ppc-page");
}

但是当我的页面网址含有相似的单词时,这两个类都被添加到两个页面中。

var url = location.pathname;
if ("url:contains('texas-ignition-interlock-device')") {
  $("body").addClass("texas-ppc-device-page");
}

我也尝试了indexOf,并且对名称相似的网页没有效果。 这是我尝试过的,这适用于第一个例子。第二个例子也将添加第一个类。

if (window.location.href.indexOf("texas-ignition-interlock") > -1) {
  $("body").addClass("texas-ppc-page");
}

if (window.location.href.indexOf("texas-ignition-interlock-devices") > -1) {
  $("body").addClass("texas-ppc-device-page");
}

现在,我仍然可以使用indexOf版本。我只是使用类.texas-ppc-page在一个页面上定位东西,在第二个页面上我将使用.texas-ppc-page.texas-ppc-device-page两个类来定位。

使用JS或jQuery有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用split(" /")将location.pathname拆分为字符串数组。 location.pathname/questions/41968769/checking-for-exact-url类似,因此将此字符串拆分为" /"将导致

["", "questions", "41968769", "checking-for-exact-url"]

现在你可以执行indexOf(""),如果字符串完全匹配,它将返回非-1值,就像在这种情况下,如果我做indexOf(" url")函数将返回-1,如果我执行indexOf(" checking-for-exact-url"),它将返回3.

答案 1 :(得分:1)

如果您希望以与您的方式类似的方式检查字符串,则可以通过https://github.com/mapbox/mapbox-gl-js/issues/3958(如下所示)使用占位符^$来启动和结束正则表达式, 分别。否则,indexOf甚至会匹配字符串的一部分。看看以下......

var url = 'texas-ignition-interlock-devices';

console.log(/^texas-ignition-interlock$/.test(url));         // false
console.log(/^texas-ignition-interlock-devices$/.test(url)); // true