通过循环和数组减少If语句

时间:2017-02-08 13:55:50

标签: javascript arrays loops if-statement foreach

我试图缩短一些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 [])必定是错误的。

1 个答案:

答案 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"); }
}