Regular Expression 6

5. 메타 문자

※ 메타문자(1)

메타문자(1)
기호 설명
. 아무 글자
[abc] 괄호 안의 글자
[^abc] 괄호 안의 글자 제외
[a-z] 알파벳 a부터 z까지
[A-Z] 알파벳 A부터 Z까지
[0-9] 숫자 0부터 9까지

메타 문자는 자바스크립트의 정규 표현식 객체가 갖는 가장 유용한 기능입니다. 우선 상기 표의 메타 문자부터 살펴봅시다.

상기 표에서 범위를 표현하는 메타 문자를 세 개만 표현했지만, [가-히] 형태로 사용해 한글을 구분할 수도 있고, [h-k]의 형태로 특정 알파벳 범위를 한정할 수도 있습니다. 처음 보면 약간 어려울 수 있으므로 예제를 살펴봅시다. 아래 예제는 [aj] 메타 문자와 플래그를 함께 사용했으므로 a 또는 j, A 또는 J를 검사합니다.



								// 변수 선언
								var regExp = /[aj]/ig;
								var stringEx = 'Javascript jQuery Ajax';

								// 메서드 사용
								var output = stringEx.replace(regExp, '+$&+');

								//출력합니다.
								alert(output);									
						



★★ 메타 문자를 사용한 주민등록번호 확인(1)

이제부터는 약간 실전적인 예제로 활용해 봅시다. 아래의 코드는 주민등록번호를 검사하는 정규 표현식입니다. 앞에 여섯 개의 글자가 오고 중간에 '-'가 들어가고 그 뒤에 일곱 개의 글자가 나오면 됩니다.

예제를 실행하면 주민등록번호 양 끝에 +를 추가해서 출력됩니다. 패턴 매칭을 수행한 것입니다.
사용자가 주민등록번호를 입력하라고 했는데, 문자를 입력할 수도 있습니다. 따라서 자바스크립트의 정규 표현식은 아래 표와 같은 메타 문자를 추가로 지원합니다.



※ 메타문자(2)

메타문자(1)
기호 설명
\d 숫자
\w 아무 단어(숫자 포함)
\s 공백 문자(탭, 띄어쓰기, 줄바꿈)
\D 숫자 아님
\W 아무 단어 아님
\S 공백 문자 아님

이를 혼합하면 아래 코드처럼 주민등록번호 검사를 수행할 수 있습니다. 아래코드의 [1234]는 주민등록번호 뒤에 위치하는 7개의 숫자 중 첫번 째 숫자는 1, 2, 3, 4 중 하나이므로 입력한 것입니다.

								// 변수 선언
								var regExp = /\d\d\d\d\d\d-[1234]\d\d\d\d\d\d/;
								var stringEx = '910209-2001211';

								// 메서드 사용
								var output = stringEx.replace(regExp, '+$&+');

								//출력
								alert(output);							
						

위 예제 코드의 앞 뒤에 앵커 문자를 추가하면 더 적절한 형태로 주민등록번호 검사를 만들 수 있습니다. 그런데 상기 코드의 \d기호를 몇번이나 사용하니 헷갈리죠? 수량 문자를 사용하면 쉽게 적을 수 있습니다.