JavaScript의 정규 표현식(RegExp)에서 주어진 문자 집합에 포함되지 않은 임의의 단일 문자를 매칭하려면 [^aeiou]와 같은 부정 문자 클래스(negated character class) 메타문자를 사용합니다.
부정 문자 클래스란?
대괄호 [] 안에서 맨 앞에 캐럿(^) 기호를 붙이면, 해당 집합에 속하지 않는 모든 문자와 일치시킬 수 있습니다. 예를 들어 [^aeiou]는 모음(a, e, i, o, u)을 제외한 모든 단일 문자를 찾습니다.
예제 코드
아래 예제에서는 문자열 "Welcome!"에서 [^lc] 패턴을 사용하여 'l'과 'c'를 제외한 나머지 문자들을 추출합니다.
<html> <head> <title>JavaScript Regular Expression</title> </head> <body> <script> var myStr = "Welcome!"; var reg = /[^lc]/g; var match = myStr.match(reg); document.write(match); </script> </body> </html>
실행 결과
위 코드를 실행하면 'l'과 'c'가 아닌 문자들만 배열로 반환됩니다. 플래그 g(global)가 지정되어 있으므로 문자열 전체에서 일치하는 모든 문자를 한 번에 찾아냅니다.
핵심 정리
[abc]: a, b, c 중 하나와 일치[^abc]: a, b, c를 제외한 임의의 단일 문자와 일치/g플래그: 문자열 전체에서 반복 검색 수행