정규식을 이용해 숫자만으로 이루어져 있는지 확인하기

송한솔·2023년 5월 14일
0

자바스크립트

목록 보기
6/10

/^[0-9]*$/ - 숫자만 이루어져 있는지 체크하는 정규식

^ : 문자열의 시작을 나타냅니다.
[0-9] : 대괄호 내의 모든 문자를 대상으로 합니다. 이 경우, 모든 숫자를 나타냅니다(즉, 0에서 9까지).
* : 앞선 문자나 그룹이 0번 이상 반복될 수 있음을 나타냅니다.
$ : 문자열의 끝을 나타냅니다.

예제 1

// 문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요.
예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

// 제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

// 입출력 예
s		return
"a234"	false
"1234"	true

// 주어진 함수
function solution(s) {
    var answer = true;
    return answer;
}

// 정규식을 이용한 풀이 1
function solution(s) {
    var regex = /^[0-9]*$/; // 숫자만 체크
    if(regex.test(s) && (4 == s.length || s.length == 6)){
        return true;
    }else{
        return false;
    }
}

// 정규식을 이용한 풀이 2
function solution(s){
    var regex = /^\d{4}$|^\d{6}$/;
    return regex.test(s);
}

regex.test(변수)는 주어진 문자열이 regex 정규 표현식에 맞는지 검사하고 그 결과를 boolean값으로 반환합니다.


/^[0-9]*$//\d/는 모두 정규 표현식이지만, 패턴을 표현하는 방식과 의미가 다릅니다.


/^[0-9]*$/ : 이 정규 표현식은 시작 (^)부터 끝($) 까지의 문자열이 0에서 9 사이의 숫자로만 구성되어 있어야 한다는 것을 의미합니다.
* 메타 문자는 앞의 요소가 0번 이상 반복될 수 있다는 것을 의미합니다.
즉, 이 정규 표현식은 문자열이 숫자로만 이루어져 있거나 비어 있는 문자열도 가능합니다.

/\d/ : 이 정규 표현식은 문자열 내에 숫자가 최소한 하나라도 포함되어 있는지를 검사합니다.
\d는 모든 숫자를 의미하는 메타 문자입니다.
이 정규 표현식은 숫자가 하나라도 있으면 일치한다고 판단합니다.

이 문제에서는 문자열의 길이가 4와 6으로 고정되어 있고, 모두 숫자열로 됬을 때 true를 반환하는 문제이기 때문에 /d{4/6}이라는 조건으로 문제를 해결할 수 있습니다.

|| ? | ?

var regex = /^\d{4}$|^\d{6}$/;

코드를 보면 | 부분을 보면 or 연산자는 ||인데 |를 사용하는 것을 볼 수 있습니다.
이처럼 정규 표현식에서는 |를 사용합니다.
즉 자바스크립트에서 or 연산자는 ||이고, 정규 표현식에서는 |라고 이해하면 됩니다.

0개의 댓글