var pathname = window.location.pathname;
if (! (pathname.indexOf('edit') > -1) ) {
// Do stuff...
}在上面的示例中,我否定并只在不包含"edit“的页面上运行JS,我希望将其更改为接受多个参数,例如,”edit“、"delete”、"admin“、"settings”。
做这件事的最好方法是什么?
发布于 2016-08-23 19:07:47
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()方法测试数组中的某些元素是否通过了所提供函数实现的测试。
发布于 2016-08-23 19:08:13
你可以做一个循环,看看是否找到了什么,然后做你想做的事情。
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
}发布于 2016-08-23 19:36:24
您可以使用正则表达式来测试多个值,例如:
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?
https://stackoverflow.com/questions/39099252
复制相似问题