Javascript 如何在条件语句中将字符串输入字段值与单词数组进行比较

Javascript 如何在条件语句中将字符串输入字段值与单词数组进行比较,javascript,html,arrays,forms,Javascript,Html,Arrays,Forms,我一直在尝试获取一个表单,以便在满足某些条件时加载自定义错误, 我已经能够实现一些期望的结果,但是我仍然没有达到将输入字段值与一个单词数组进行比较的条件,这是我的代码 var blacklistU=[“and”,“or”,“or”,“/”,“\\”]; var blacklistP=[“和”,“或”,“或”,“/”,“\\”]; const err=“您的用户名和密码与我们的文件不匹配。请尝试再次登录或选择“帮助”; 变量OID=document.form0.OnlineID1.value;

我一直在尝试获取一个表单,以便在满足某些条件时加载自定义错误, 我已经能够实现一些期望的结果,但是我仍然没有达到将输入字段值与一个单词数组进行比较的条件,这是我的代码

var blacklistU=[“and”,“or”,“or”,“/”,“\\”];
var blacklistP=[“和”,“或”,“或”,“/”,“\\”];
const err=“您的用户名和密码与我们的文件不匹配。请尝试再次登录或选择“帮助”;
变量OID=document.form0.OnlineID1.value;
var OIDP=document.form0.OIDPassword.value;
函数验证(){
if(document.form0.OnlineID1.value==“”&document.form0.OIDPassword.value==“”){
document.getElementById('error0').innerHTML=“请告诉我们您的用户名和密码”;
返回false;
}else if(document.form0.OnlineID1.value==“”&document.form0.OIDPassword.value.length!=0){
document.getElementById('error0').innerHTML=“请告诉我们您的用户名”;
返回false;
}else if(document.form0.OIDPassword.value==“”&document.form0.OnlineID1.value.length!=0){
document.getElementById('error0').innerHTML=“请告诉我们您的密码”;
返回false;
}else if(document.form0.OnlineID1.value.length 0){
document.getElementById('error0')。innerHTML=err;
返回false;
}else if(document.form0.OIDPassword.value.length 0){
document.getElementById('error0')。innerHTML=err;
返回false;
}else if(document.form0.OnlineID1.value.length>0){
对于(变量i=0;i=-1){
document.getElementById('error0')。innerHTML=err;
返回false;
}else if(true){
对于(变量i=0;i=-1){
document.getElementById('error0')。innerHTML=err;
返回false;
}
}
}
}
}
}

记得我吗
登录
最后一个条件似乎不起作用

如果您指的是
OIDP.indexOf(blacklistP[i])>=-1
,这是因为
indexOf
仅当搜索的值不在数组中时才返回
-1
,否则返回一个数字
=0
;因此,条件应该是
OID.indexOf(blacklistU[i])==-1

我还建议你避免这种结构

if (/*condition*/) {
    // code...
}
else if (true) {
    // code
}
赞成

if (/*condition*/) {
    // code...
}
else {
    // code
}

我建议您使用函数中的元素变量,并使用一种简短的方法,尽早使用范式return,经常使用一个简单的
if
语句返回,而不使用
else
部分。由于return的存在,该函数仍然存在

为了提高可见性,我在错误消息中添加了一些数字

最后,for循环的
没有嵌套,因为它没有意义

对索引的检查

if(string.indexOf()>=-1)

始终为
true
,因为找到的任何索引都大于
-1
,而未找到的索引等于
-1

根据用途,您需要使用相等的
-1
或不等的
-1
进行检查。我认为在这种情况下,应该是
!==-1

函数验证(){
变量OID=document.form0.OnlineID1.value,
OIDP=document.form0.OIDPassword.value,
blacklistU=[“和”,“或”,“或”,“/”,“\\”],
blacklistP=[“和”,“或”,“或”,“/”,“\\”],
error=“您的用户名和密码与我们的文件不匹配。请尝试再次登录或选择“帮助”,
errorElement=document.getElementById('error0'),
我
如果(!OID&!OIDP){
errorElement.innerHTML=“请告诉我们您的用户名和密码”;
返回false;
}
如果(!OID&&OIDP){
errorElement.innerHTML=“请告诉我们您的用户名”;
返回false;
}
如果(OID&!OIDP){
errorElement.innerHTML=“请告诉我们您的密码”;
返回false;
}

if(OID.length)感谢您的编辑,但它仍然不起作用。它只解析任何超过4个字符的输入