JavaScript에서 Sring이 숫자인지 확인

Hiten Kanwar 2023년10월12일
  1. JavaScript에서 isNaN() 함수를 사용하여 주어진 문자열이 숫자인지 확인하는 방법
  2. JavaScript에서 주어진 문자열이 숫자인지 확인하기 위해 + 연산자 사용하기
  3. JavaScript에서 주어진 문자열이 숫자인지 확인하기 위해 parseInt() 함수 사용하기
  4. JavaScript에서 주어진 문자열이 숫자인지 확인하기 위해 Number() 함수 사용하기
  5. JavaScript에서 주어진 문자열이 숫자인지 확인하기 위해 정규 표현식 사용하기
JavaScript에서 Sring이 숫자인지 확인

프로그래밍 언어에서 숫자는 정수, 부동소수점 등을 나타내는 데이터 타입입니다. 문자열은 숫자 값뿐만 아니라 모든 문자를 나타냅니다. 문자열에는 숫자 값을 포함할 수 있습니다.

이 문서에서는 주어진 문자열이 숫자인지 아닌지를 확인할 것입니다.

JavaScript에서 isNaN() 함수를 사용하여 주어진 문자열이 숫자인지 확인하는 방법

isNaN() 함수는 is Not-a-Number의 약어로, 주어진 값이 숫자 값이 아닌지 확인하기 위해 사용되는 내장 JavaScript 함수입니다. 이에는 실제 숫자와 숫자 문자열 모두가 포함됩니다.

isNaN() 함수는 값이 숫자가 아니면 true를 반환하고 유효한 숫자로 변환할 수 있는 경우 false를 반환합니다.

isNaN() 함수의 기본 구문은 다음과 같습니다:

isNaN(value)
  • value: 숫자인지 확인하려는 값입니다. 이는 변수, 상수 또는 식일 수 있습니다.

예시:

console.log(isNaN('195'))
console.log(isNaN('boo'))
console.log(isNaN('100px'))

결과:

false 
true
true

유효한 값을 반환하는 함수를 작성하려면 항상 isNaN() 함수의 결과를 부정하는 함수를 작성하여 할 수 있습니다.

function isNum(val) {
  return !isNaN(val)
}
console.log(isNum('aaa'));
console.log(isNum('13579'));
console.log(isNum('-13'));

결과:

false
true
true

이제 이 함수인 isNum()은 유효한 숫자 값을 반환할 것입니다.

소수점이 있는 숫자 문자열 다루기

isNaN() 함수는 다양하게 사용될 수 있으며 소수점이 있는 숫자 문자열도 처리할 수 있습니다. 예를 들어:

const str = '3.14';  // The string we want to check
const isNumeric = isNaN(str);

if (isNumeric) {
  console.log(`${str} is NOT a number.`);
} else {
  console.log(`${str} is a number.`);
}

출력은 '3.14'를 숫자로 식별합니다:

3.14 is a number.

JavaScript에서 주어진 문자열이 숫자인지 확인하기 위해 + 연산자 사용하기

JavaScript의 + 연산자는 산술 덧셈과 형 변환의 단항 연산자로 두 가지 목적으로 사용될 수 있습니다.

문자열에 적용될 때 + 연산자는 문자열을 숫자 값으로 변환하려고 시도합니다. 문자열을 숫자로 성공적으로 변환할 수 있는 경우 결과는 유효한 숫자 값이 되고, 그렇지 않은 경우 NaN (Not-a-Number)이 됩니다.

예를 들어,

console.log(+'195')
console.log(+'boo')

결과:

195
NaN

JavaScript에서 주어진 문자열이 숫자인지 확인하기 위해 parseInt() 함수 사용하기

JavaScript의 parseInt() 메소드는 문자열을 파싱하여 정수(정수)로 변환하는 데 사용됩니다. 이 메소드는 왼쪽에서 오른쪽으로 문자열을 읽다가 정수의 유효한 부분이 아닌 문자를 만나면 파싱을 중단합니다.

parseInt()를 사용하는 기본 구문은 다음과 같습니다:

parseInt(string[, radix]);
  • string: 정수로 파싱하여 변환할 문자열입니다.
  • radix (선택 사항): 문자열에 사용되는 진수 체계의 기준으로 2에서 36 사이의 정수입니다. 이 매개 변수는 선택 사항이며 생략하면 JavaScript는 10진수를 가정합니다.

문자열에서 숫자를 추출할 수 없는 경우 NaN을 반환합니다.

예를 들어,

console.log(parseInt('195'))
console.log(parseInt('boo'))

결과:

195
NaN

진수가 있는 숫자 문자열 다루기

parseInt() 메소드를 사용하면 문자열에서 사용되는 진수(기수)를 지정할 수도 있습니다. 예를 들어, 이진 (진수 2), 8진 (진수 8) 또는 16진 (진수 16) 숫자를 파싱할 수 있습니다.

16진수 문자열을 파싱하는 예제입니다:

const hexString = '1A';                    // Hexadecimal string
const intValue = parseInt(hexString, 16);  // Specify base 16

if (isNaN(intValue)) {
  console.log(`${hexString} is NOT a number.`);
} else {
  console.log(`${hexString} is a number.`);
}

이 경우, 출력은 '1A'를 16진수 숫자로 올바르게 식별합니다:

1A is a number.

JavaScript에서 주어진 문자열이 숫자인지 확인하기 위해 Number() 함수 사용하기

Number() 함수는 인자를 객체의 값을 나타내는 숫자로 변환합니다. 값을 숫자로 변환하지 못하는 경우 NaN을 반환합니다.

문자열과 함께 사용하여 주어진 문자열이 숫자인지 아닌지를 확인할 수 있습니다.

예를 들어,

console.log(Number('195'))
console.log(Number('boo'))

결과:

195
NaN

JavaScript에서 주어진 문자열이 숫자인지 확인하기 위해 정규 표현식 사용하기

정규 표현식은 종종 regex라고 불리며, 문자열 집합을 지정하는 패턴입니다. 문자열 내에서 패턴 일치 검사에 사용되어 문자열 유효성 검사와 같은 작업에 유용한 도구입니다.

JavaScript에서는 “RegExp” 생성자를 사용하거나 슬래시 사이에 regex 리터럴 표기법을 사용하여 정규 표현식을 생성할 수 있습니다.

우리는 이러한 패턴을 사용하여 문자열에 숫자가 포함되어 있는지 확인할 수 있습니다.

먼저, 숫자 값을 일치시키는 정규 표현식 패턴을 정의해야 합니다. 양수 및 음수 정수뿐만 아니라 부동 소수점 수와 일치하는 간단한 패턴을 만들 수 있습니다.

const numberPattern = /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;

이 패턴이 하는 일은 다음과 같습니다:

  • ^: 문자열의 시작을 나타냅니다.
  • [-+]? : 옵션으로 양수 또는 음수 부호와 일치합니다.
  • [0-9]* : 소수점 앞의 숫자가 0개 이상일치합니다.
  • \.? : 옵션으로 소수점을 일치시킵니다.
  • [0-9]+ : 소수점 이후의 숫자가 1개 이상일치합니다.
  • ([eE][-+]?[0-9]+)? : e-3 또는 E+4와 같은 지수 부분과 일치하는 부분이 선택적으로 일치합니다.

이제 문자열에 정규 표현식 패턴의 test() 메서드를 적용합니다. test() 메서드는 문자열이 패턴과 일치하면 true를 반환하고 그렇지 않으면 false를 반환합니다.

const isNumber = numberPattern.test(str);

예를 들어,

function isNumeric(val) {
  return /^-?\d+$/.test(val);
}

console.log(isNumeric('aaa'));
console.log(isNumeric('13579'));
console.log(isNumeric('-13'));

출력:

false
true
true

관련 문장 - JavaScript String