자바스크립트 숫자인지 검사

자바스크립트 숫자인지 검사

 

인터넷에 흔히 돌아다니는 isNaN(parseInt(숫자)) 검증은 문제가 있어서 새로 짜보았음.

’11aa’ 와 같은 케이스 발견 불가능하므로 길이만큼 for문 돌아주는게 제일 속편함.

// 숫자만 얻기
 function getNum(_str) {
  
  try {
   if (_str == null || _str.trim().length == 0) {
    return false;
   }
   _str = _str.trim();
   
   // 1차 검증
   var num = parseInt(_str);
   if (num == null || isNaN(num)) {
    return false;
   }

 

   // 1차 검증시 : ’11aa’ 와 같은 케이스 발견 불가
   var len = _str.length;
   var oneChar = “”;
   for(var i=0; i<len; i++) {
    oneChar = _str.substring(i, i+1);
    if (oneChar == “0”) {
     continue;
    }
    
    if (isNaN(parseInt(oneChar))) {
     return false;
    }
   }
   
  } catch (e) {
   return false;
  }
  
  return num;
 }