Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Javascript 如果所有字母都显示在字符串中,是否返回true? 函数匹配(字符串、模式){ pattern=pattern.toLowerCase(); string=string.toLowerCase(); 对于(变量i=0;i函数匹配(输入,模式){ pattern=pattern.toLowerCase(); input=input.toLowerCase(); 对于(var i=0;i_Javascript_String - Fatal编程技术网

Javascript 如果所有字母都显示在字符串中,是否返回true? 函数匹配(字符串、模式){ pattern=pattern.toLowerCase(); string=string.toLowerCase(); 对于(变量i=0;i函数匹配(输入,模式){ pattern=pattern.toLowerCase(); input=input.toLowerCase(); 对于(var i=0;i

Javascript 如果所有字母都显示在字符串中,是否返回true? 函数匹配(字符串、模式){ pattern=pattern.toLowerCase(); string=string.toLowerCase(); 对于(变量i=0;i函数匹配(输入,模式){ pattern=pattern.toLowerCase(); input=input.toLowerCase(); 对于(var i=0;i,javascript,string,Javascript,String,来说,如果您使用它会更好。它更短,而且您的意图是显而易见的 function match (input,pattern){ pattern = pattern.toLowerCase(); input= input.toLowerCase (); for (var i=0;i<input.length;i++){ var found = false; for (var j=0;j<pattern.length;j++){ if (patte

来说,如果您使用它会更好。它更短,而且您的意图是显而易见的

function match (input,pattern){

  pattern = pattern.toLowerCase();
  input= input.toLowerCase ();

  for (var i=0;i<input.length;i++){
    var found = false;
    for (var j=0;j<pattern.length;j++){
      if (pattern.charAt(j)==input.charAt(i)){
        // Letter was found, skip to next one
        found = true;
        break;
      }
    }

    // As soon as we conclude that one letter was not found, abort
    if (found == false){
        return false;
    }
  }

  // All letters were found, return SUCCESS
  return true; 
}

与嵌套在另一个循环中的
for
循环相比,此循环的可伸缩性要好得多:

function match (str, pattern) {
    str = str.toLowerCase();
    return pattern.toLowerCase().split("").every(function(c) {
        return str.indexOf(c) !== -1;
    });
}

请添加您用作标记的语言。它在某处显示意外标识符?更新了答案。顺便说一句,您确实应该学习如何使用
Firebug
进行调试:
function match (str, pattern) {
    str = str.toLowerCase();
    return pattern.toLowerCase().split("").every(function(c) {
        return str.indexOf(c) !== -1;
    });
}
function everyChar(sample,pattern){
  var patTable=Object.create(null);
  var aSample=Array.prototype.slice.call(sample.toLowerCase());
  var aPattern=Array.prototype.slice.call(pattern.toLowerCase());
  aPattern.forEach(function(c){patTable[c]=true;});
  aSample.forEach(function(c){delete patTable[c];});
  return Object.keys(patTable).length==0;
}

var sample_pass="pack my box with five dozen liquor jugs";
var pat="the quick brown fox jumped over the lazy dogs";
everyChar(sample_pass,pat);

/*
true
*/

var sample_fail="pack my bag with five dozen liquor jugs";
everyChar(sample_fail,pat);

/*
false
*/