Regular Expression 9

8. 정규 표현식 사용 예제

이 절에서는 자바스크립트의 정규 표현식을 사용하는 경우를 몇 가지 소개하겠습니다. 정규 표현식은 수많은 형태로 패턴 매치를 할 수 있으므로, 이 부분에서 제공하는 방법이 100% 옳은 것은 아닙니다. 이 절을 마친 후에 인터넷에서 여러 종류의 정규 표현식을 더 찾아보세요. 이메일과 관련된 정규 표현식만 수 백 종류가 나올 것입니다.



★ 한글 이름 확인

우선, 한글 이름을 확인하는 함수를 만들어 봅시다. 한글 이름은 아래 코드의 형태로 구분할 수 있스습니다. 아래 코드는 정규 표현식을 사용해 한글을 모두 빈 문자열로 대체합니다. 만약 한글로만 구성됐다면 모든 문자열의 문자가 빈 문자열로 바뀔 것입니다.

								function isKoreanName (string) {
									// 변수 선언
									var regExp = /([가-힣])/g;

									// 메서드를 사용
									var replacedString = string.replace(regExp, ''); // 빈 한글을 찾아 빈 문자열로 대체

									// 확인
									if (replacedString.length == 0) {
										return true;
									}else {
										return false;
									}								
								}
								
								alert(isKoreanName('윤인성'));							
						

모든 한글이 빈 문자열로 바뀌었다면 문자열 replacedString의 length 속성은 0이 되므로 한글로만 구성돼 있는지 확인할 수 있습니다.



★ 이메일

이메일을 구분하는 방법을 알아봅시다. 이메일은 정말 많은 방법으로 패턴 검사를 할 수 있지만 여기서는 아래와 같은 코드로 간단한 형태의 패턴을 추출합니다.

글자@글자.글자

								function isEmail (string) {
									// 변수 선언
									var regExp = /\w+@\w+\.\w+/; // \.은 "."을 나타냄 정규표현 기호가 아님!

									// 확인
									return regExp.test(string);
								}

								alert(isEmail('florakid@nvar.com'));					
						



★ 숫자 천 단위 점 찍기

마지막으로 아래 소스코드의 addComma() 함수를 사용하면 숫자의 천 단위마다 점을 찍을 수 있습니다.
addComma()함수는 끝에서 3자리씩 찾아내어 점을 찍습니다. 정규 표현식을 사용한 replace() 메서드는 앞쪽부터 검사한다는 점을 이용하는 함수입니다.

								function addComma (number) {
									var regExp = /(^[+-]?\d+)(\d{3})/;
									
									var stringEx = String(number);
									
									while (regExp.test(stringEx)) {
										stringEx = stringEx.replace(regExp, '$1,$2');
									}
									return stringEx;
								}

								alert(addComma('1000000000'));		
						

어떤 순서대로 천 단위로 점을 찍는지 짐작할 수 있나요? while 반복문 내부에서 경고창을 사용해 변수 strongEx를 출력하면 이러한 순서로 점이 찍히는 것을 확인할 수 있습니다.