首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >indexOf多个参数

indexOf多个参数
EN

Stack Overflow用户
提问于 2016-08-23 18:56:27
回答 4查看 1.2K关注 0票数 1
代码语言:javascript
复制
var pathname = window.location.pathname;
if (! (pathname.indexOf('edit') > -1) ) {
  // Do stuff...
}

在上面的示例中,我否定并只在不包含"edit“的页面上运行JS,我希望将其更改为接受多个参数,例如,”edit“、"delete”、"admin“、"settings”。

做这件事的最好方法是什么?

EN

回答 4

Stack Overflow用户

发布于 2016-08-23 19:07:47

代码语言:javascript
复制
var pathname = window.location.pathname;

if (["edit", "delete", "admin"].some(x => pathname.indexOf(x) > -1)) {
    // ...
}

对于较旧的浏览器没有箭头功能

代码语言:javascript
复制
var pathname = window.location.pathname,
    isSpecialPath = ["edit", "delete", "admin"].some(function(x) { return pathname.indexOf(x) > -1; });

if (isSpecialPath) {
    // ...
}

Array.prototype.some():some()方法测试数组中的某些元素是否通过了所提供函数实现的测试。

票数 3
EN

Stack Overflow用户

发布于 2016-08-23 19:08:13

你可以做一个循环,看看是否找到了什么,然后做你想做的事情。

代码语言:javascript
复制
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
}
票数 1
EN

Stack Overflow用户

发布于 2016-08-23 19:36:24

您可以使用正则表达式来测试多个值,例如:

代码语言:javascript
复制
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?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39099252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档