2013-10-04 2 views
0

제목에서 나는 스크립트를 사용하여 if 유효성 검증을 생성한다고 제안합니다. 따라서 if 문은 주어진 배열을 기반으로 조정됩니다 (설정 파일로 작동해야 함).
예를 하나 들어 보겠습니다 :변수 유효성 검사를 사용하여 if 문을 생성 할 수 있습니까?

if(sTime == "12:00:00") 
{ 
    //code to happen when it's 12 o'clock 
} 

는 config 입력이 "12시 0분 0초"를해야합니다. 괜찮아. 하지만 설정 파일에 시간이 더 있다면 어떨까요? 2 회와
이 문은 할 필요가있는 경우 :

if(sTime == "12:00:00" || sTime == "12:30:00") 
{ 
    //code to happen when it's 12 o'clock 
} 



이 내가 나 자신이 설정 입력에 따라 검증을 생성 자동으로 수행하도록하려면. 내 검증의 값이 될 것이다이 경우

var tijd = ["12:00:00", "12:30:00"]; 
var validatie = ''; 

var length = tijd.length; 
$.each(tijd, function(key, value) 
{ 
    if(length != key+1) 
    { 
     if(length > 1) 
     { 
      validatie += 'sTime =="' + value + '" || '; 
     } 
     else 
     { 
      validatie += 'sTime =="' + value + '"'; 
     } 
    } 
    else 
    { 
     validatie += 'sTime =="' + value + '"'; 
    } 
}) 

:
다음은 내 생성 코드 STIME == "12시 0분 0초"|| sTime == "12:30:00"
정확하게 보이는 것처럼 보입니다! 그러나 어떻게 이것을 코드로 사용합니까? 이제 문자열로 저장됩니다.

if(validatie) 
{ 
    //will only check if the array exists 
} 

어떻게이 변수를 excecute 할 수 있습니까?
도움을 주시면 감사하겠습니다.



jsFiddle 의도 유효성 검사가 그대로 있으면 당신이

답변

3

을 통지하지 않을 수 있습니다, 모든 JQuery와에 다음 "sTime 일치의 값이 배열의 요소 중 하나"당신은 할 수 수행 어떤 이유로 브라우저가 지원하지 않는 경우,

if(tijd.indexOf(sTime) > -1) { 
    // code here 
} 

를 또는, jQuery를 기능이있다 :

if($.inArray(sTime, tijd)) { 
    // code here 
} 
if 문 조건을 문자열로 생성 한 다음 코드의 일부로 실행하려고하면 안됩니다.

당신이 절대적으로 있었나요 (내가 강하게 하지이 일을 건의 할 것) 경우 사용할 수 eval :

if(eval(validatie)) { 
    // code here 
} 
+0

같이 IndexOf는 당연히 감사합니다! 더 많은 가능성을주는 당신의 위대한! :) 당신이 제안한 것처럼, 나는 eval 함수를 사용하지 않을 것입니다. – nkmol

관련 문제