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

자바스크립트 정규식 \W 메타문자 – 단어가 아닌 문자 찾기

정규식(RegExp)에서 \W 메타문자는 단어 문자(word character)가 아닌 문자, 즉 비단어 문자를 찾을 때 사용합니다.

여기서 말하는 단어 문자란 영문 소문자(a~z), 대문자(A~Z), 숫자(0~9), 그리고 밑줄(_)을 의미합니다. 이 범위에 속하지 않는 공백, 특수문자, 기호 등은 모두 비단어 문자로 간주됩니다.

\W 메타문자의 역할

\W[^a-zA-Z0-9_]와 동일한 의미를 가집니다. 즉, 대괄호 표기법으로 단어 문자를 제외하는 것과 같은 결과를 냅니다. 입력 문자열에 단어 문자 외의 문자가 하나라도 포함되어 있으면 매칭에 성공합니다.

예제 코드

// 비단어 문자가 포함된 경우:
console.log(/\W/.test(" "))      // true (공백)
console.log(/\W/.test(".!@#"))   // true (특수문자)

// 비단어 문자가 포함되지 않은 경우:
console.log(/\W/.test("a"))     // false (영문 소문자)
console.log(/\W/.test("B"))     // false (영문 대문자)
console.log(/\W/.test("9"))     // false (숫자)
console.log(/\W/.test("_"))     // false (밑줄)

실행 결과

true
true
false
false
false
false

코드 설명

위 예제에서 .test() 메서드는 정규식 패턴과 문자열이 일치하면 true, 일치하지 않으면 false를 반환합니다. 공백과 특수문자는 단어 문자에 해당하지 않으므로 true가 출력되고, 알파벳·숫자·밑줄은 단어 문자이므로 false가 출력됩니다.

참고: 반대 개념인 \w

\W와 정반대로 작동하는 \w 메타문자는 단어 문자 자체를 찾습니다. 두 메타문자는 대소문자만 다르지만 완전히 상반된 결과를 반환하므로 함께 익혀두면 유용합니다.

활용 예시

\W는 사용자 입력값 검증, 불필요한 특수문자 제거, 문자열 분리(split) 등 다양한 상황에서 활용됩니다. 예를 들어 str.split(/\W+/)처럼 사용하면 특수문자를 기준으로 문자열을 손쉽게 나눌 수 있습니다.