Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 숫자만 매칭하는 정규식 작성 방법

JavaScript에서 문자열 안에 포함된 숫자만 추출하거나 매칭하고 싶다면, 정규식(Regular Expression)의 \d 메타 문자를 활용하면 됩니다. \d는 0부터 9까지의 숫자 한 글자를 의미하며, g(global) 플래그를 함께 사용하면 문자열 전체에서 일치하는 모든 숫자를 찾을 수 있습니다.

기본 예제

아래 코드는 문자열 "5200% Demo"에서 숫자만 골라내어 출력하는 예제입니다.

<html>
<head>
    <title>JavaScript Regular Expressions</title>
</head>
<body>
    <script>
        var myStr = "5200% Demo";
        var reg = /\d/g;

        var match = myStr.match(reg);

        document.write(match);
    </script>
</body>
</html>

실행 결과

5,2,0,0

코드 설명

1. /\d/g
\d는 숫자(digit) 한 자리를 의미하는 메타 문자입니다. 슬래시 뒤에 붙인 g 플래그는 전역 검색(global search)을 의미하여, 첫 번째 일치 항목뿐 아니라 문자열 내의 모든 숫자를 찾아냅니다.

2. match() 메서드
String.prototype.match()는 정규식과 일치하는 결과를 배열 형태로 반환합니다. 위 예제에서는 ["5", "2", "0", "0"]이 반환되며, 이를 화면에 출력하면 5,2,0,0으로 표시됩니다.

참고: 연속된 숫자를 하나로 묶기

위 예제는 각 숫자를 개별적으로 추출합니다. 만약 5200처럼 연속된 숫자를 하나의 값으로 얻고 싶다면 + 수량자(quantifier)를 추가하면 됩니다.

<script>
    var myStr = "5200% Demo";
    var reg = /\d+/g;

    var match = myStr.match(reg);

    document.write(match); // 5200
</script>

또한 \d 대신 문자 클래스 [0-9]를 사용해도 동일한 결과를 얻을 수 있으며, 두 표현은 완전히 같은 의미입니다.