2013-04-01 4 views
0

지금까지 사용해 왔지만 제대로 작동하지 않습니까?연령 확인 자바 스크립트

//if no age was entered it will allow 
var age=document.getElementById('age1').value; 
if(age == "")  
    return true; 

//check if age is a number or less than or greater than 100 
if (isNaN(age)||age<1||age>100) 
{ 
    alert("The age must be a number between 1 and 100"); 
    return false; 
} 

단지 유효성을 검사해야합니다 !!!!

답변

0

문자열로 제공되기 때문에 나이로 되돌아 오는 값을 parseInt() 할 수 있습니다.

0

parseInt(value, radix)을 사용하여 문자열을 숫자로 변환해야합니다. 이 방법을 사용할 때는 radix을 제공하는 것이 좋습니다. 귀하의 경우 그것은 십진수이므로 radix10입니다.

이 시도 :

//if no age was entered it will allow 
var age=document.getElementById('age1').value; 
if(age === "") { 
    return true; 
} 

// convert age to a number 
age = parseInt(age, 10); 

//check if age is a number or less than or greater than 100 
if (isNaN(age) || age < 1 || age > 100) 
{ 
    alert("The age must be a number between 1 and 100"); 
    return false; 
} 
1

+ 바로 가기 Number로 변환하거나이 유효성을 검사하는 정규 표현식을 사용하지 않는 이유는 parseInt(value, 10)

var age = +document.getElementById('age1').value; 

if (!(age > 1 && age<100)){ 

     alert("The age must be a number between 1 and 100"); 
     return false; 
} 

return true; 
0

를 사용하려고합니다.

/^[1-9]?[0-9]{1}$|^100$/ 

1 또는 2 자리, 100의 숫자와 일치하는이 정규식 :이를 위해 정규 표현식 아래 사용

+0

좋은 제안을하지만 당신은보다 구체적인 정규 표현식 패턴을 제공 할 것입니다. 'donotmatch100','donotmatch10or0'과'donotmatch10or0orme'에 대해서 여러분의 정규식을 시험해보십시오. –

+0

Thnks @ Tanzel Kazi, 대답을 업데이트했습니다 –

+0

대단합니다. :) –