【问题标题】:checking an array for allowed characters检查数组中允许的字符
【发布时间】:2013-11-07 05:28:59
【问题描述】:

我不明白为什么这段代码仍然返回 false,即使我在提示符中键入 abcdef,因为它应该返回 true。

var userinput = prompt('Input characters:');

var lowercase = userinput.toLowerCase();

var allowedcharacters = ["a", "b", "c", "d", "e", "f"]

function match(input, statement) {
    for (var i = 0; i < statement.length; i++) {
        if (input.indexOf(statement[i]) == -1) {
            return false;
        }
    }
    return true;
}

if (lowercase == allowedcharacters){
  alert(true);
}
else{
  alert(false);
}

【问题讨论】:

    标签: javascript arrays string-matching


    【解决方案1】:

    这是完整的代码。通过查看这个尝试获得一个想法,这个正在工作。干杯!!!

    【讨论】:

      【解决方案2】:

      你没有调用你的match 函数。你可能想要:

      if (match(lowercase, allowedcharacters)){
        alert(true);
      }
      else{
        alert(false);
      }
      

      编辑根据请求,这是match 的变体,如果没有字符匹配不允许的字符,则返回true

      function noneMatch(input, disallowed) {
          for (var i = 0; i < disallowed.length; i++) {
              if (input.indexOf(statement[i]) >= 0) {
                  return false;
              }
          }
          return true;
      }
      

      【讨论】:

      • 那我该如何调用这个函数呢?抱歉,我刚开始学习 javascript。
      • @TedHopp 谢谢。是否可以添加另一个包含不允许字符的数组?
      • @ElliottDavidson - 当然。你只需要反转你在match 中的逻辑。不是在找不到字符时返回false,而是在找到字符 时返回false。但是,我认为将所需字符列表和不允许的字符列表都传递给同一个函数没有多大意义。 (大概如果它在不允许的列表中,它不在要求的列表中,所以无论如何它都会被拒绝。)
      • @TedHopp 我明白了,但我该怎么做呢?抱歉,对这些东西很陌生。
      【解决方案3】:

      你没有使用你构建的函数匹配

      【讨论】:

        【解决方案4】:
        var userinput = prompt('Input characters:');
        
        var lowercase = userinput.toLowerCase();
        
        var allowedcharacters = ["a", "b", "c", "d", "e", "f"]
        
        
        
        if (match(lowercase,allowedcharacters)){
          alert(true);
        }
        else{
          alert(false);
        }
        
        
        //function to check
        function match(input, statement) {
            for (var i = 0; i < statement.length; i++) {
                if (input.indexOf(statement[i]) == -1) {
                    return false;
                }
            }
            return true;
        }
        

        【讨论】:

          猜你喜欢
          • 2018-10-22
          • 2012-05-28
          • 1970-01-01
          • 2020-01-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-02
          相关资源
          最近更新 更多