정규식
2010. 7. 20. 10:10ㆍ99. 정리전 - IT/11. Java
이메일 체크 정규식
/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
핸드폰번호
정규식
/^\d{3}-\d{3,4}-\d{4}$/;
일반 전화번호 정규식
/^\d{2,3}-\d{3,4}-\d{4}$/;
아이디나 비밀번호 정규식
/^[a-z0-9_]{4,20}$/;
var regExp =
/^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
if (
!regExp.test( document.frm.hp.value ) ) {
alert("잘못된 휴대폰 번호입니다.
숫자, - 를 포함한 숫자만 입력하세요.");
return false
}
정규식 공식
- 선택 기호: "|" 기호는 여러 식 중에서 하나를 선택한다. 예를 들어, "abc|adc"는 abc라는 문자열과 adc라는 문자열을 모두 포함한다.
- 묶기 기호: "("와 ")"로 여러 식을 하나로 묶을 수 있다. "abc|adc"와 "a(b|d)c"는 같은 의미를 가진다.
- 개수 기호: 문자 뒤에 붙어 문자의 개수를 나타낸다.
- "*" : 0개 이상. "a*b"는 "b", "ab", "aab", "aaab"를 포함한다.
- "+" : 1개 이상. "a+b"는 "ab", "aab", "aaab"를 포함하지만 "b"는 포함하지 않는다.
- "?" : 0개 또는 1개. "a?b"는 "b", "ab"를 포함한다.
- "{m, n}" : m개 이상 n개 이하. "a{1,3}b"는 "ab", "aab", "aaab"를 포함하지만, "b"나 "aaaab"는 포함하지 않는다.
이에 따라 "(fa|mo|b?o)ther"는 "father", "mother", "bother", "other"를 나타낸다.
많은 프로그래밍 언어에서는 이를 확장한 문법을 가지고 있다. 이 중 일반적으로 사용되는 연산자는 다음과 같다.
- "[]" : "["과 "]" 사이의 문자 중 하나를 선택한다. "|"를 여러 개 쓴 것과 같은 의미를 가진다. 예를 들면 [abc]d는 ad, bd, cd를 뜻한다. 또한, "-" 기호와 함께 쓰면 문자의 범위를 지정할 수 있다. "[a-z]"는 a부터 z까지 중 하나, "[1-9]"는 1부터 9까지 중의 하나를 뜻한다.
- "[^]" : "[^"과 "]" 사이의 문자를 제외한 나머지 하나를 선택한다. 예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않고 ed, fd 등을 포함한다. [^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 나타낸다.
- "^", "$" : 각각 문자열의 처음과 끝을 나타낸다.