티스토리 뷰

728x90

Javascript에서 숫자는 number 타입이지만, "1234"는 숫자 같지만, 타입은 문자열입니다. 문자가 숫자일 뿐 문자열 객체인데요. 숫자가 문자열 타입으로 저장되는 경우가 있기 때문에, 숫자가 항상 number 타입으로 전달되지 않을 수 있습니다. 만약 숫자로 된 문자열이 숫자인지 확인하고 싶다면, 문자열을 숫자로 변경하여 체크할 수도 있지만 다른 방법들도 있습니다. 예제와 함께 알아보겠습니다.

 

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

NaN은 Not a Number(숫자가 아님)의 의미로, isNaN(str)은 문자열 str이 숫자가 아닐 때(숫자로 변환할 수 없을 때) true를 리턴합니다.

 

isNaN()을 사용하여 아래와 같이 문자열이 숫자인지(number 타입으로 변환 가능한 지) 확인할 수 있습니다.

const strNum = "12345678";

if (isNaN(strNum)) {
  console.log("문자열은 숫자가 아님");
} else {
  console.log("문자열은 숫자");
}

Output:

문자열은 숫자

 

isNaN()을 사용하여 다양한 타입과 다양한 문자열 숫자로 테스트해보면, 아래와 같은 결과를 리턴합니다.

  • 숫자로 변환할 수 없는 문자열은 false 리턴
  • 숫자가 들어있는 배열은 false 리턴
console.log(!isNaN("str")); // false
console.log(!isNaN([1, 2, 3, 4])); // false

console.log(!isNaN("10")); // true
console.log(!isNaN("+10")); // true
console.log(!isNaN("-10")); // true
console.log(!isNaN("10.0")); // true
console.log(!isNaN("10.1")); // true
console.log(!isNaN("1e10")); // true
console.log(!isNaN("2e-5")); // true
console.log(!isNaN("Infinity")); // true
console.log(!isNaN("-Infinity")); // true
console.log(!isNaN("0xFFFFFF")); // true
console.log(!isNaN(new String("1234"))); // true
console.log(!isNaN(1234)); // true

 

정규식으로 문자열이 숫자인지 확인

정규식을 사용하여 문자열이 숫자로만 되어있는지, 숫자로 변환 가능한지 확인할 수도 있습니다.

  • "^\d+$" 패턴에서 \d는 숫자, +는 앞의 패턴이 1개 이상, $는 문자열의 끝을 의미
  • 즉, "^\d+$"는 문자열이 숫자로만 구성된 경우를 의미하는 패턴
  • /^\d+$/.test(strNum)은 strNum이 패턴에 해당하는 문자열이면 true를 리턴
const strNum = "12345678";

if (/^\d+$/.test(strNum)) {
  console.log("문자열은 숫자");
} else {
  console.log("문자열은 숫자가 아님");
}

Output:

문자열은 숫자
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함