如何使用lastIndexOf在javascript中匹配网址?

时间:2016-09-07 08:01:18

标签: javascript regex

我是javascript的新用户,但如果它与某个网址上的代码匹配,我会尝试在网页上有条件地显示按钮/链接:

LinkNode = document.getElementById("csv");
var url = document.documentURI
  if(document.documentURI.substr(url.lastIndexOf("/"+1)) == "/colleagues"){
    LinkNode.style.visibility= "visible";
  }
  else{
    LinkNode.style.visibility= "hidden";
}

任何人都可以建议我做错了什么或如何匹配我的网址结尾" /同事"因为这不匹配?使用正则表达式可能更容易吗?

我如何测试看看document.documentURI.substr(url.lastIndexOf(" /" + 1))实际产生了什么?

3 个答案:

答案 0 :(得分:2)

@MattE只需更新您的代码

document.documentURI.substr(url.lastIndexOf("/")) == "/colleagues"

答案 1 :(得分:1)

如果你不需要非常准确,你可以这样使用它:

if (document.documentURI.indexOf("/colleagues") !== -1) {
  LinkNode.style.visibility= "visible";
}
else {
  LinkNode.style.visibility= "hidden";
}

注意

如果存在“/同事”,这将在您的整个URI中找到。这意味着,它不会在域中找到它,因为它具有“/”。但可能是您有“www.domain.com/colleagues/sample”或“www.domain.com/sample/colleagues”,它会在两个案例中输入if

答案 2 :(得分:1)

你可以使用正则表达式匹配:

var urlIndex = url.search("\/colleagues$");
if (urlIndex !== -1) {
  LinkNode.style.visibility= "visible";
} else {
  LinkNode.style.visibility= "hidden";
}

string.search方法返回第一个匹配的索引,如果没有匹配则返回-1

对于测试,您可以使用几乎每个桌面浏览器中都可用的调试工具,并在要检查的行上设置断点 另一种方法是添加console.log('some text', someValue)并在浏览器控制台中查看输出