2013-07-21 2 views
11
if($('#this').val().indexOf('4289')){ 
    Do something 
else 
    Do something. 

이 그 4289에서만 작동,
에서 같이 IndexOf를 사용하는 방법, 그것은 작동하지 않습니다. 다른 번호는 어떻게 써야 하나? 내가 사용 '또는'옆에 인덱싱 할 다른 번호를 추가 할 때 JQuery와

IndexOf('4289||78843') 

예컨대

나는이이 번호를 확인하고 싶은 입력 필드에 숫자가 오류를 반향이 중 하나가 아닌 경우.

필드를 다시 방문 할 때 어떤 일이 벌어 지는지 더 자세히 알 수 있습니다. 그것이 내가 있으리라 믿고있어 대상에 존재하지 않는 문자열 '4289||78843', 찾고있을 것이기 때문이다

$('#Zip').blur(function(){ 
     if (($(this).val().indexOf('0860') > -1)||($(this).val().indexOf('0850') > -1)){ 
     $('#Status_Zip').html("No way.") 
     $(this).alterClass('*_*', 'Success') 
     return false; 
     }else{$('#Status_Code').hide() 
     $(this).alterClass('*_*', 'Error') 
     $(this).css('border-color', '#F00').css('background-color', '#FFC').effect("pulsate",{times:4},2) 
      return true; 
     } 
    }) 

답변

18

. 논리 연산자는 논리적으로 조작 할 실제 값이있는 곳에서만 던져 질 수 없습니다. 이런 식으로 뭔가 :

if(($('#this').val().indexOf('4289') > -1) || 
    ($('#this').val().indexOf('78843') > -1)) 

indexOf() 함수의 반환 값이 목표 값에 그 값의 숫자 인덱스, 또는 -1이 발견되어 있지 않은 경우. 따라서 원하는 각 값에 대해 인덱스가 > -1 (문자열에 있음을 나타냄)인지 확인하고 싶을 것입니다. 그 전체 조건을 가지고 다른 조건으로 ||을 가져 가면 그것은 논리적 연산입니다.

편집 : 귀하의 코멘트에 대해서는, 당신이 뭔가에이 추상에 조금 청소기를 원하고 당신이 그들 중 하나가에있는 경우 문자열의 집합을 반복하고 true을 반환 자체 기능으로 추출 할 수 더 일반적인 경우 타겟 캐릭터 라인 이 같은 아마 뭔가 :

function isAnyValueIn(target, values) { 
    for (var i = 0; i < values.length; i++) { 
     if (target.indexOf(values[i]) > -1) { 
      return true; 
     } 
    } 
    return false; 
} 

도 배열에 .forEach()으로 그렇게 할 수있는 더 우아한 방법이있을 수 있지만 적어도 아이디어를 보여줍니다. 그런 다음 코드의 다른 부분에서 값 배열을 만들고 함수를 호출합니다.

var values = ['4289', '78843']; 
var target = $('#this').val(); 
if (isAnyValueIn(target, values)) { 
    // At least one value is in the target string 
} 
+0

좋습니다. 효과가 있습니다. 단 한가지는이 숫자 중 20 개 이상을 넣을 경우 코드가 많은 색인으로 길어질 것입니다. 어딘가에서 뭔가를 줄일 수는 없습니까? ? –

+0

@ BlessingThinker : 물론, 그것은 그것의 자신의 범용 함수로 추상화 될 수 있습니다. 코드에 복사/붙여 넣기가 많이 일어날 때마다 적어도 기능을 추출 할 수 있습니다. 이 외에도 더 많은 접근법이있을 수 있지만, 충분히 직설적 인 것처럼 보입니다. 예를 들어 답변을 업데이트했습니다. – David

+0

나는 blur를 사용했다. 그리고 나서 wen one은 그것이 올바른지 확인하는 올바른 숫자를 넣는다. 그러나 당신이 돌아가서 그 숫자를 다른 것으로 바꿀 때, 함수는 죽은 것처럼 보인다. –