본문 바로가기

웹프로그래밍/Javascript

javascript(자바스크립트) 문자열 안에 숫자가 있는지 아는 방법

자바스크립트에서 문자열 안에 숫자가 포함되어있는지 아닌지는 굉장히 간단하게 알 수 있다.


  1. 반복문을 이용한 방법
  2. 정규식을 이용한 방법

1. 반복문을 이용한 방법

문자열 안에 숫자가 있는지 알 수 있는 가장 간단한 방법은 문자열 하나하나를 숫자로 변환할 수 있는지를 알아보는 방법이 있다. 이를 위해서는 반복문을 사용하면 된다.

const str = "오늘은 7월 10일";

for(let i = 0; i < str.length; i++) { // str의 길의 전체를 순회
	if(!isNaN(str[i]) { // 문자인지 확인
    	console.log("숫자가 포함되어 있습니다")
        break;
    }
}

 

여기서 중요한 것은 isNaN 메서드이다. NaN은 Not a Number의 약자로 말그래도 문자가 아니라는 뜻이다. 즉 isNaN은 문자인지 아닌지를 확인하는 건데 더 정확하게는 숫자로 바꿀 수 있는지 아닌지를 확인하는 메서드이다. 

 

숫자로 바꿀 수 있으면 false가 나오고 숫자로 바꿀 수 없으면 true가 나온다.

 

다시 말해 true/false 같은 bool 타입 문자는 숫자로 변환 할 수 있기 때문에 false가 나온다. 다만 이 우리가 대입할 변수에는 bollean이나 null 같은 타입이 들어오지 않고 순수한 string 타입의 문자만 들어올 것이기 때문에 이러한 것들은 신경쓰지 않아도 된다.

 

string 타입의 문자열도 [] 로 인덱스 접근이 가능하기 때문에 반복문을 통하여 문자열 전체를 하나하나 순회하여 숫자가 있는지 확인 할 수 있다.


2. 정규식을 이용한 방법

반복문을 이용하여 숫자가 있는지 탐색하던중 자바스크립트라면 분명 더 좋은 방법이 있을 거라는 생각이 들었다. 그리고 그 생각은 맞았다. 반복문을 돌리는 것보다 더 좋은 방법은 정규식을 이용하는 방법이다.

 

정규식은 다음과 같이 쓰면 된다.

/\d/.test(확인할문자열)

const str = "오늘은 7월 10일";

if(/\d/.test(str))	// 정규식을 이용한 비교 결과는 true or false 로 나온다
	console.log("숫자가 포함되어 있습니다")

 

 

/\d/  : 숫자 하나를 뜻하는 정규식

test(str) : str 에 대해  정규식 패턴을 확인해 true/false 여부를 반환한다.

 

이렇게 하면 아주 간편하게 숫자가 포함되어있는지 알 수 있다. 정규식을 이용하면 숫자뿐 아니라 문자가 포함되어있는지, 영어가 포함되어있는지, 한글이 포함되어있는지 등등 많은 조건을 판별할 수 있다.