如何检查URL末尾是否有特定的字符串

时间:2012-10-10 11:36:51

标签: javascript jquery url

我需要根据网址末尾的内容向下滑动叠加层。

如果(URL末尾有'faq') { 覆盖下来 }

你怎么能在jQuery / JavaScript中做到这一点?

4 个答案:

答案 0 :(得分:10)

如果您的网址类似于此http://yourdomain.com/faq,则可以执行以下操作:

var url = window.location.href;
var lastPart = url.substr(url.lastIndexOf('/') + 1);

if (lastPart === "faq") {
   // Show your overlay
}

这样就可以检查其他结局并对其采取行动。

<强>更新

要使其正常工作,即使URL有斜杠,您也可以创建如下函数:

function getLastPart(url) {
    var parts = url.split("/");
    return (url.lastIndexOf('/') !== url.length - 1 
       ? parts[parts.length - 1]
       : parts[parts.length - 2]);
}

然后,您可以调用getLastPart(window.location.href)之类的函数来获取当前页面的URL的最后一部分。

以下是一个工作示例:http://jsfiddle.net/WuXHG/

免责声明:如果您的网址最后使用哈希值或查询字符串,则必须首先从网址中删除该网址,以使此脚本正常运行

答案 1 :(得分:9)

您应该能够使用带有正则表达式的window.location对象,如下所示:

/faq$/.test(window.location)

答案 2 :(得分:3)

ES6规范中添加了一种新方法if (!String.prototype.endsWith) String.prototype.endsWith = function(searchStr, Position) { // This works much better than >= because // it compensates for NaN: if (!(Position < this.length)) Position = this.length; else Position |= 0; // round position return this.substr(Position - searchStr.length, searchStr.length) === searchStr; }; 。对于以前的版本,我们可以使用

对其进行填充
If (window.location.href.endsWith("faq")) { 
   // Show your overlay
}

现在你可以轻松编写

{{1}}

<强>参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith

答案 3 :(得分:1)

您可以使用以下方式获取当前网址:

 var currentUrl = window.location.href;

然后你可以使用indexOf检查你的令牌是否在字符串的末尾(这里是faq)

 if (currentUrl.indexOf('faq') == currentUrl.length - 3)
 {
  // Do something here
 }