Javascript 检查数组是否包含允许或不允许的字符

Javascript 检查数组是否包含允许或不允许的字符,javascript,arrays,Javascript,Arrays,我想把notallowedcharacters的特性添加到我的函数检查中,我该怎么做 var userinput = prompt('Input characters:'); var lowercase = userinput.toLowerCase(); var allowedcharacters = ["a", "b", "c", "d", "e", "f"] var notallowedcharacters = ["g-z"] && ["!","@","#","€",

我想把notallowedcharacters的特性添加到我的函数检查中,我该怎么做

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

var lowercase = userinput.toLowerCase();

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

var notallowedcharacters = ["g-z"] && ["!","@","#","€","£","$","%","&","?","*","/","\","|",";",":","<",">","[","]","{","-","_","^","~","`","±","§"]

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

if (match(lowercase, allowedcharacters)){
  alert(true);
}
else{
  alert(false);
}
var userinput=prompt('Input characters:');
var lowercase=userinput.toLowerCase();
var allowedcharacters=[“a”、“b”、“c”、“d”、“e”、“f”]
var notallowedcharacters=[“g-z”]&&&[“!”、“@”、“#”、“欧元”、“英镑”、“美元”、“百分比”、“和”、“?”、“*”、“/”、“\”、“:”、“、”、“[”、“]、“{”、“-”、“{”、“^”、“~、“、”、“、”、“§“]
函数匹配(输入、语句){
for(var i=0;i
最好的方法是使用正则表达式检查要在函数中标记为非法的字符串、字符和模式

Mozilla文档和web上有很多关于如何构造表达式的示例和解释,如果需要的话,这些表达式可以像你想象的那样复杂,这就是为什么它们是这类事情的事实标准

例如,这捕获了不匹配的电话号码,这些号码可以外推到您的用例中

<button onclick="testInfo(document.getElementById('phone'));">Check</button>

var re = /(?:\d{3}|\(\d{3}\))([-\/\.])\d{3}\1\d{4}/;  // RegEx Pattern
function testInfo(phoneInput){  
    var OK = re.exec(phoneInput.value);  
    if (!OK)  
      window.alert(RegExp.input + " isn't a phone number with area code!");  
    else
      window.alert("Thanks, your phone number is " + OK[0]);  
}  
检查
变量re=/(?:\d{3}\(\d{3}\)([-\/\.])\d{3}\1\d{4}/;//正则表达式模式
函数testInfo(电话输入){
var OK=re.exec(phoneInput.value);
如果(!OK)
window.alert(RegExp.input+“不是带区号的电话号码!”);
其他的
window.alert(“谢谢,您的电话号码是”+OK[0]);
}  

我不是您在
var notallowedcharacters=…;
行中尝试实现的100%,但是布尔AND运算符
&&
不会合并数组。它只会返回决定操作结果的操作数,在本例中是第二个数组。@FelixKling在我想要的var notallowedcharacters中列出了所有数组如果用户输入这些字符,它将返回FALSE。您可以使用
var a=[],b=[];a.concat(b)
来合并数组。不过我最好使用regexp解决方案。