Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用lastIndexOf匹配javascript中的url?_Javascript_Regex - Fatal编程技术网

如何使用lastIndexOf匹配javascript中的url?

如何使用lastIndexOf匹配javascript中的url?,javascript,regex,Javascript,Regex,我不熟悉javascript,但我正在尝试有条件地在页面上显示按钮/链接,如果它与某个url匹配,代码如下: LinkNode = document.getElementById("csv"); var url = document.documentURI if(document.documentURI.substr(url.lastIndexOf("/"+1)) == "/colleagues"){ LinkNode.style.visibility= "visible"; }

我不熟悉javascript,但我正在尝试有条件地在页面上显示按钮/链接,如果它与某个url匹配,代码如下:

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";
}
谁能告诉我哪里做错了,或者如何匹配以“/同事”结尾的url,因为这不匹配?使用正则表达式可能更容易吗


如何测试以查看document.documentURI.substr(url.lastIndexOf(“/”+1))实际生成的是什么文档?

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

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


如果存在“/同事”,这将在整个URI中找到。这意味着,它不会在域中找到它,因为它有“/”。但可能是您有“www.domain.com/components/sample”或“www.domain.com/sample/components”,并且它将在两种情况下都输入if

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

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


如果存在“/同事”,这将在整个URI中找到。这意味着,它不会在域中找到它,因为它有“/”。但可能是您有“www.domain.com/components/sample”或“www.domain.com/sample/components”,并且在两种情况下都会输入if,您可以使用正则表达式匹配:

var urlIndex = url.search("\/colleagues$");
if (urlIndex !== -1) {
  LinkNode.style.visibility= "visible";
} else {
  LinkNode.style.visibility= "hidden";
}
string.search
方法返回第一个匹配项的索引,如果没有匹配项,则返回
-1

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

var urlIndex = url.search("\/colleagues$");
if (urlIndex !== -1) {
  LinkNode.style.visibility= "visible";
} else {
  LinkNode.style.visibility= "hidden";
}
string.search
方法返回第一个匹配项的索引,如果没有匹配项,则返回
-1

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

@MattE只需更新代码即可

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

@MattE只需更新您的代码

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

删除+1或将+1放在lastIndexOf括号外并更改比较字符串。删除+1或将+1放在lastIndexOf括号外并更改比较字符串。谢谢,这也可以,但在我的情况下,其他页面上字符串的其他部分将有“同事”,不想显示链接。。。然而,知道这一点真的很有用:-)没问题。我在stackoverflow中找到了这篇文章,为了回答您的问题“使用正则表达式是否可能更容易?”谢谢,这同样有效,但在我的情况下,我会在其他页面的字符串的其他部分显示“同事”,不想显示链接。。。然而,知道这一点真的很有用:-)没问题。我在stackoverflow中找到了这篇文章,为了回答你的问题“使用正则表达式是否可能更容易?”这同样有效谢谢,感谢关于疑难解答的建议:-)这同样有效谢谢,感谢关于疑难解答的建议:-)@MattE欢迎:-)@MattE欢迎:-)