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

자바스크립트 정규 표현식 \d와 \D의 차이점 완벽 정리


\d vs \D: 무엇이 다를까?

정규 표현식에서 \d와 \D는 서로 반대되는 역할을 하며 그 차이가 매우 큽니다. \d숫자(digit)를 찾아내고, \D숫자가 아닌 문자(non-digit), 즉 e, ^ 같은 문자들을 찾아냅니다. 참고로 \d는 [0-9]와, \D는 [^0-9]와 동일한 의미입니다. 이 두 패턴은 일반적으로 전역 플래그(global object)인 "g"와 함께 사용되어, 텍스트 전체에 걸쳐 일치하는 모든 숫자와 숫자가 아닌 문자를 한 번에 추출할 수 있습니다. 지금부터 자세히 살펴보겠습니다.

구문 1

new RegExp("\\d", "g");

구문 2

new RegExp("\\D", "g")

예제 1: \d로 숫자만 추출하기

다음 예제에서는 '\d'를 전역 플래그 "g"와 함께 사용하여 주어진 텍스트에서 모든 숫자를 추출합니다. 만약 전역 플래그를 사용하지 않으면, 패턴과 일치하는 첫 번째 숫자 하나만 출력되므로 주의해야 합니다.

<html>
<body>
<script>
    var text = "one has to score 760+ in gmat to get into ivy colleges";
    var regpat = /\d/g;
    var result = text.match(regpat);
    document.write(result);
</script>
</body>
</html>

실행 결과

7,6,0


예제 2: \D로 숫자가 아닌 문자 추출하기

다음 예제에서는 \D를 전역 플래그 'g'와 함께 사용하여 t, y, ^, & 등 숫자가 아닌 모든 문자를 추출합니다. 여기서 숫자가 아닌 문자에는 -, ^, & 같은 특수문자는 물론 공백(space)까지 포함된다는 점이 중요합니다.

<html>
<body>
<script>
   var text = "one has to score 760+ in gmat to get into ivy colleges";
   var regpat = /\D/g;
   var result = text.match(regpat);
   document.write(result);
</script>
</body>
</html>

실행 결과

o,n,e, ,h,a,s, ,t,o, ,s,c,o,r,e, ,+, ,i,n, ,g,m,a,t, ,t,o, ,g,e,t, ,i,n,t,o, ,i,v,y, ,c,o,l,l,e,g,e,s