JAVASCRIPT:为多个字符写这个检查索引的最简单最神秘的方法是什么?

时间:2013-05-29 11:36:56

标签: javascript

写出以下代码的最简洁最神秘的方法是什么?此代码在继续之前检查字符是否存在。

if(window.location.href.toString().indexOf('A') > 1) {

if(window.location.href.toString().indexOf('hh') > 1) {

if(window.location.href.toString().indexOf('eg3') > 1) {

if(window.location.href.toString().indexOf('1g4') > 1) {

}

}

}

}

2 个答案:

答案 0 :(得分:1)

这个或多或少的神秘线条怎么样?

function check (a,b) {for (var i=0,k,f=1;k=b[i];i++) {f^=!!~a.indexOf(k)};return !f;}

如果您愿意,可以Closure compiled version

function check(d,e){for(var b=0,c,a=1;c=e[b];b++)a^=!!~d.indexOf(c);return!a};

输出

var x = "asdf";    
console.log("found: %s", check (x,["qwer","rtz"])) //found: false
console.log("found: %s", check (x,["qwer","a"])) //found: true

这将检查包含a

中包含的任何字符串的b

在你的情况下     check (window.location.href,["A","hh","eg3","1g4"])?/*Code to execute when true*/:/*When false*/

(function (a,b) {for (var i=0,k,f=1;k=b[i];i++) {f^=!!~a.indexOf(k)};return !f;})(window.location.href,["A","hh","eg3","1g4"])?alert("found"):alert("not found")

答案 1 :(得分:0)

如果您的浏览器支持forEach()方法,您可以用这种神秘的方式编写

var str = location.href,    
    existAllSubstring = 1; 

["A", "hh", "eg3", "ig4"].forEach(function(s) {
   existAllSubstring *= +(str.indexOf(s) > 1);
});


if (existAllSubstring > 0) {
  /* ok */
}