var pathname = window.location.pathname;
if (! (pathname.indexOf('edit') > -1) ) {
// Do stuff...
}
在上面的示例中,我否定并且仅在不包含“edit”的页面上运行JS,我想将其更改为接受多个参数,例如“edit”,“delete”,“admin”, “设置”。
这是最好的方法吗?
答案 0 :(得分:3)
var pathname = window.location.pathname;
if (["edit", "delete", "admin"].some(x => pathname.indexOf(x) > -1)) {
// ...
}
没有旧浏览器的箭头功能
var pathname = window.location.pathname,
isSpecialPath = ["edit", "delete", "admin"].some(function(x) { return pathname.indexOf(x) > -1; });
if (isSpecialPath) {
// ...
}
Array.prototype.some()
: some()方法测试数组中的某个元素是否通过了由提供的函数实现的测试。
答案 1 :(得分:1)
你可以制作一个循环,看看是否找到了什么,然后做你想做的事。
var pathname = window.location.pathname;
var names = ["edit", "delete", "admin", "settings"];
var found = false;
for( var i = 0; i < names.length; i++ ) {
if( pathname.indexOf(names[i]) > -1 ) {
found = true;
break;
}
}
if( !found ) {
// do stuff
}
答案 2 :(得分:0)
您可以使用正则表达式来测试多个值,例如:
var pathname = window.location.pathname;
var textToSearchFor = /(edit)|(delete)|(ADDMORE)/;
if (path.match(textToSearchFor) == null) {
//Entered Text not available
//alert("Not available");
}
else {
//Entered Text available
//alert("Available");
}
参考:How to search for multiple texts in a string, using java script?
答案 3 :(得分:0)
你可以试试这个:
var pathname = window.location.pathname;
if((/edit|delete|admin|settings/i).test(pathname))
{
console.log("exists");
}
else
{
console.log("not exists");
}
&#13;