JavaScript - 문자열이 숫자인지 확인

문자열이 숫자인지 확인하는 방법을 소개합니다.

1. isNaN()으로 문자열이 숫자인지 확인

isNaN()는 인자로 전달된 변수가 Number 타입이거나, 문자열이지만 숫자로만 구성되어있을 때 false를 리턴합니다. !isNaN()가 true일 때, 변수는 숫자라고 판별할 수 있습니다.

아래 예제의 다양한 유형의 문자열 중에, 마지막 3개만 제외하고 모두 숫자로 판별됩니다.

function isNum(val){
  return !isNaN(val)
}

console.log(isNum('1'));  // true
console.log(isNum('+1'));  // true
console.log(isNum('-1'));  // true
console.log(isNum('1.0'));  // true
console.log(isNum('1.1'));  // true
console.log(isNum('1e10'));  // true
console.log(isNum('2e-5'));  // true
console.log(isNum('0xFFFFFF'));  // true
console.log(isNum('Infinity'));  // true
console.log(isNum('-Infinity'));  // true
console.log(isNum(new String('1')));   // true
console.log(isNum(123));               // true

console.log(isNum('NaN'));    // false
console.log(isNum('str1'));   // false
console.log(isNum([1, 2]));   // false

2. Number()로 문자열이 숫자인지 확인

!!Number(val)는 문자열이 숫자일 때 true를 리턴합니다.

Number()는 인자로 전달된 문자열이 숫자일 때 Number 객체가 리턴되고, 숫자가 아니면 NaN이 리턴됩니다. !을 두번 붙이면 NaN은 false가 되며, Number는 true가 됩니다.

console.log(Number('10'));    // 10
console.log(!Number('10'));   // false
console.log(!!Number('10'));  // true

console.log(Number('aaa'));   // NaN
console.log(!Number('aaa'));  // true
console.log(!!Number('aaa')); // false

아래 예제의 다양한 유형의 문자열 중에, 마지막 3개만 제외하고 모두 숫자로 판별됩니다.

function isNum(val){
  return !!Number(val)
}

console.log(isNum('1'));  // true
console.log(isNum('+1'));  // true
console.log(isNum('-1'));  // true
console.log(isNum('1.0'));  // true
console.log(isNum('1.1'));  // true
console.log(isNum('1e10'));  // true
console.log(isNum('2e-5'));  // true
console.log(isNum('0xFFFFFF'));  // true
console.log(isNum('Infinity'));  // true
console.log(isNum('-Infinity'));  // true
console.log(isNum(new String('1')));   // true
console.log(isNum(123));   // true

console.log(isNum('NaN'));    // false
console.log(isNum('str1'));   // false
console.log(isNum([1, 2]));   // false
Loading script...
codechachaCopyright ©2019 codechacha