자바스크립트에서 문자열 안에 숫자가 포함되어있는지 아닌지는 굉장히 간단하게 알 수 있다.
- 반복문을 이용한 방법
- 정규식을 이용한 방법
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 여부를 반환한다.
이렇게 하면 아주 간편하게 숫자가 포함되어있는지 알 수 있다. 정규식을 이용하면 숫자뿐 아니라 문자가 포함되어있는지, 영어가 포함되어있는지, 한글이 포함되어있는지 등등 많은 조건을 판별할 수 있다.
'웹프로그래밍 > Javascript' 카테고리의 다른 글
Javascript(자바스크립트) lastIndexOf() - 일치하는 문자열의 인덱스 번호를 역순으로 찾는 메서드 (0) | 2024.06.27 |
---|---|
Javascript(자바스크립트) 문자를 대문자 또는 소문자로 바꾸는 toUpperCase, toLowerCase (0) | 2024.06.27 |
Javascript(자바스크립트) 에러를 잡는 try catch (0) | 2024.06.19 |
Javascript(자바스크립트) 구조 분해 할당 (0) | 2024.06.11 |
Javascript(자바스크립트) split 함수 (0) | 2024.06.10 |