2012-12-06 4 views
0

JavaScript 및 Regex에서 작업중인 HTML 파일의 입력을 인식하는 데 문제가 있습니다.자바 스크립트 및 정규식 유효성 검사

function validateSchoolClass(field) 
{ 
if(field == "") 
{ 
    return "No class ID was entered.\n"; 
} 
else if (field.length != 4) 
{ 
    return "Class ID must be 4 characters.\n"; 
} 
else if (/[^A-Z]{2}[^0-9]{2}/.test(field)) 
{ 
    return "Class Name must be two capital letters followed by two numbers.\n"; 
} 
return ""; 
} 

는 내가 일이 원하는 것은 처음 2 대문자되며 다음이 숫자가 될 것입니다 4 개 문자를 포함 전달되는 필드에 해당 입력입니다. 내가 뭔가를 놓치고 있는지 모르겠지만, 내가 읽어야 할 모든 것을 읽어야한다.하지만 그렇지 않다. 그리고 전달 된 4 문자 입력은 여전히 ​​유효한 것으로 간주된다!

답변

1

나는 변경 것 그 최종 else if 두 문자가 대문자에 대한 정규 표현식 테스트는 당신이 일을보고 할 수 있도록 내가, 그 결과를 반전하는 !을 사용하여 다음 두 자리 숫자 다음에, 그

else if (!/^[A-Z]{2}[0-9]{2}$/.test(field)) 

그 돈 일치하지 않습니다. (앵커는 처음과 끝 부분에 추가했지만 이전 길이 검사에서는 기술적으로 불필요한 것 같습니다.)

+0

정말 고마워요. 나는 이것을 며칠 동안 붙들 렸습니다. 나는 두 개의 부정 된 범위를 작동 시키려고 애를 썼다. –