我试图缩短一些if语句
以前我有以下内容:
realToFrac
所以基本上检查输入是否正确。 到目前为止,一切都符合逻辑。但是我有太多的If-Statement所以现在我试图将它们缩短为以下内容:
var regex = new RegExp(/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?()]/);
var ltr = /[a-zA-Z ]+/;
var mistakeA;
var mistakeB;
var mistakeC;
var input = document.myform.myinputname.value;
var input2 = document.myform.myinputname.value;
if(ltr.test(input) && !(regex.test(input))){
myinputid.style.border ='1.5px solid red;
mistakeA;
}
else if (regex.test(input) && !(ltr.test(input))){
myinputid.style.border ='1.5px solid red;
mistakeB;
} // same for input 2
那么我做错了什么?或者我如何缩短我的If-Statements?我有8个具有相同结构的陈述。 不调用数组(它们是输入)。它没有工作,因为.test(input [])必定是错误的。
答案 0 :(得分:1)
var input = []; // that's how you declare an array
input.push(document.myform.myinputname.value); // add a new item
input.push(document.myform.myinputname.value); // add another
// ...
// Or: (notice =)
//var input = [document.myform.myinputname.value, document.myform.myinputname.value, ...];
// just an advice (use var i instead of i) to not make i global
for (var i = 0; i < input.length; i++){
if (ltr.test(input[i]) && !(regex.test(input[i]))){ // use subscripts to indicate which item of the array to test
myinputid.style.border='1.5px solid red';
} else { alert("noarray"); }
}