기본적으로 자바스크립트에서 정규표현식은 / (슬래쉬)로 감싼다
"(큰따옴표) 또는 '(작은따옴표)로 감싸지 않는다.
그리고 마지막에 /g 또는 /i 또는 /gi 로 끝난다
왜 그런지 궁금하면 각자 찾아보는 걸로 한다~
아래에서 뜻하는 정규 표현식은 영문 a-z 로 시작하고 이후에 a-z0-9 사이 문자열이 오면 된다는 것이다.
대괄호 앞에 ^가 붙으면 시작을 뜻하고 대괄호 안에 ^가 붙으면 제외를 뜻한다.
^[a-z]로 되어 있으니 시작을 영문 a-z로 하는 것을 뜻한다
+ 연산자로 연결을 한다.
{5,19}는 5~19자리를 뜻한다.
앞에서 ^[a-z]에서 1자리를 먹었으니 이후에 [a-z0-9]{5,19} 5~19자리이니...
결국은 6~20 자리를 뜻한다.
$가 붙으면 끝을 뜻한다.
[a-z0-9]{5,19}$ 이니.. 영문소문자 또는 숫자로 끝이 나면 된다.
var idReg = /^[a-z]+[a-z0-9]{5,19}$/g;
if( !idReg.test( $("input[name=uid]").val() ) ) {
alert("아이디는 영문자로 시작하는 6~20자 영문자 또는 숫자이어야 합니다.");
return;
}
아래에는 예제들이다.
[영문 대문자 또는 소문자로 시작하는 아이디, 끝날때 영문 대문자 또는 소문자]
var idReg = /^[A-za-z]$/g;
[영문 대문자 또는 소문자로 시작하는 아이디, 끝날때 제한 없음]
var idReg = /^[A-za-z]/g;
[영문 대문자 또는 소문자 또는 숫자로 시작하는 아이디, 끝날때 영문 대문자 또는 소문자 또는 숫자]
var idReg = /^[A-za-z0-9]$/g;
[영문 대문자 또는 소문자 또는 숫자로 시작하는 아이디, 끝날때 제한 없음]
var idReg = /^[A-za-z0-9]/g;
[영문 대문자 또는 소문자로 시작하는 아이디, 길이는 5~15자, 끝날때 영문 대문자 또는 소문자]
var idReg = /^[A-za-z]{5,15}$/g;
[영문 대문자 또는 소문자로 시작하는 아이디, 길이는 5~15자, 끝날때 제한 없음]
var idReg = /^[A-za-z]{5,15}/g;
[영문 대문자 또는 소문자 또는 숫자로 시작하는 아이디, 길이는 5~15자, 끝날때 영문 대문자 또는 소문자 또는 숫자]
var idReg = /^[A-za-z0-9]{5,15}$/g;
[영문 대문자 또는 소문자 또는 숫자로 시작하는 아이디, 길이는 5~15자, 끝날때 제한 없음]
var idReg = /^[A-za-z0-9]{5,15}/g;
//한글 : /[^ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g
//영어 : /[^A-Za-z]/g
//숫자 : /[^0-9]/gi
//특수기호 :
//조합 : /^[a-z]+[a-z0-9]{5,19}$/g; --영문으로 시작하는...
/*
[영문 대문자 또는 소문자로 시작하는 아이디, 끝날때 영문 대문자 또는 소문자]
var idReg = /^[A-za-z]$/g;
[영문 대문자 또는 소문자로 시작하는 아이디, 끝날때 제한 없음]
var idReg = /^[A-za-z]/g;
[영문 대문자 또는 소문자 또는 숫자로 시작하는 아이디, 끝날때 영문 대문자 또는 소문자 또는 숫자]
var idReg = /^[A-za-z0-9]$/g;
[영문 대문자 또는 소문자 또는 숫자로 시작하는 아이디, 끝날때 제한 없음]
var idReg = /^[A-za-z0-9]/g;
[영문 대문자 또는 소문자로 시작하는 아이디, 길이는 5~15자, 끝날때 영문 대문자 또는 소문자]
var idReg = /^[A-za-z]{5,15}$/g;
[영문 대문자 또는 소문자로 시작하는 아이디, 길이는 5~15자, 끝날때 제한 없음]
var idReg = /^[A-za-z]{5,15}/g;
[영문 대문자 또는 소문자 또는 숫자로 시작하는 아이디, 길이는 5~15자, 끝날때 영문 대문자 또는 소문자 또는 숫자]
var idReg = /^[A-za-z0-9]{5,15}$/g;
[영문 대문자 또는 소문자 또는 숫자로 시작하는 아이디, 길이는 5~15자, 끝날때 제한 없음]
var idReg = /^[A-za-z0-9]{5,15}/g;
숫자만 허용하는 정규식
/[0-9]/;
IP 입력 형식의 정규식
/^(1|2)?\d?\d([.](1|2)?\d?\d){3}$/;
E-Mail 입력 형식 정규식
/^([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/;
핸드폰 번호 입력 형식 정규식
/^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
일반 전화번호 입력 형식 정규식
/^\d{2,3}-\d{3,4}-\d{4}$/;
URL 입력 형식 정규식
/(?:(?:(https?|ftp|telnet):\/\/|[\s\t\r\n\[\]\`\<\>\"\'])((?:[\w$\-_\.+!*\'\(\),]|%[0-9a-f][0-9a-f])*\:(?:[\w$\-_\.+!*\'\(\),;\?&=]|%[0-9a-f][0-9a-f])+\@)?(?:((?:(?:[a-z0-9\-가-힣]+\.)+[a-z0-9\-]{2,})|(?:[\d]{1,3}\.){3}[\d]{1,3})|localhost)(?:\:([0-9]+))?((?:\/(?:[\w$\-_\.+!*\'\(\),;:@&=ㄱ-ㅎㅏ-ㅣ가-힣]|%[0-9a-f][0-9a-f])+)*)(?:\/([^\s\/\?\.:<>|#]*(?:\.[^\s\/\?:<>|#]+)*))?(\/?[\?;](?:[a-z0-9\-]+(?:=[^\s:&<>]*)?\&)*[a-z0-9\-]+(?:=[^\s:&<>]*)?)?(#[\w\-]+)?)/gmi;
숫자만 허용하는 정규식 | /[0-9]/; |
IP 입력 형식의 정규식 | /^(1|2)?\d?\d([.](1|2)?\d?\d){3}$/; |
E-Mail 입력 형식 정규식 | /^([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/; |
핸드폰 번호 입력 형식 정규식 | /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/; |
일반 전화번호 입력 형식 정규식 | /^\d{2,3}-\d{3,4}-\d{4}$/; |
URL 입력 형식 정규식 | /(?:(?:(https?|ftp|telnet):\/\/|[\s\t\r\n\[\]\`\<\>\"\'])((?:[\w$\-_\.+!*\'\(\),]|%[0-9a-f][0-9a-f])*\:(?:[\w$\-_\.+!*\'\(\),;\?&=]|%[0-9a-f][0-9a-f])+\@)?(?:((?:(?:[a-z0-9\-가-힣]+\.)+[a-z0-9\-]{2,})|(?:[\d]{1,3}\.){3}[\d]{1,3})|localhost)(?:\:([0-9]+))?((?:\/(?:[\w$\-_\.+!*\'\(\),;:@&=ㄱ-ㅎㅏ-ㅣ가-힣]|%[0-9a-f][0-9a-f])+)*)(?:\/([^\s\/\?\.:<>|#]*(?:\.[^\s\/\?:<>|#]+)*))?(\/?[\?;](?:[a-z0-9\-]+(?:=[^\s:&<>]*)?\&)*[a-z0-9\-]+(?:=[^\s:&<>]*)?)?(#[\w\-]+)?)/gmi; |
정규식 기본 표현
* | 0또는 그이상 횟수로 매치 |
? | 0또는 1회 매치 |
+ | 1회 또는 그이상 횟수로 매치 |
{m} | 정확히 m회 매치 |
{m,} | 최소한 m회 매치 |
{m,n} | 최소한 m회 최대한 n회 매치 |
| | OR 를 의미함 |
^Auto | 첫번째 문자가 반드시 Auto로 시작함을 의미 |
Auto$ | 마지막 문자가 반드시 Auto로 끝남을 의미 |
\d [0-9] | 숫자 |
\D [^0-9] | 숫자가 아닌것 |
\s [\t\n\x0B\f\r] | 공백 |
\S [^\s] | 공백이 아닌것 |
\w [a-zA-Z_0-9] | 문자 |
\W [^\w] | 문자가 아닌것 |
^ | 시작부분 |
$ | 끝부분 |
\b | 글자인 범위 |
\B | 글자가 아닌것의 범위 |
X? | 0 혹은 1 |
X* | 0 이상 |
X+ | 1 이상 |
X{n} | n 개 |
X{n,} | n 이상 |
X{n, m} | n 이상 m 이하 |
X|Y | X or Y |
(X) | 묶음(그룹화) |
사용자 계정 생성시 자주 사용하게 되는 룰이 영문, 숫자만 허용하는 것인데
이를 자바스크립트 정규표현식을 사용하면 무척 간단하게 표현이 가능하다
var regType1 = /^[A-Za-z0-9+]*$/;
영어는 대문자 소문자가 있기 때문에 두가지를 모두 식에 표현해 주어야 한다
var regType1 = /^[A-Za-z0-9+]*$/;
var regType1 = /^[A-Za-z0-9+]*$/;
숫자도 0-9 라는 조건을 통해 필터링 할 수 있다
var regType1 = /^[A-Za-z0-9+]*$/;
+ 는 대/소 영문자, 숫자가 한번 이상 나온다는 의미이며
꺽쇠 바깥쪽의 별표(아스타리스크,*)는 꺽쇠 안의 조건이 0번 이상 반복된다는 의미이다
만약, 문자열 길이를 제한하고 싶으면 어떻게 하면 될까?
그 때는 브레이스({,})로 문자열 갯수를 지정해 주면 된다.
var regType1 = /^[A-Za-z0-9+]{4,12}$/;
위와 같은 식을 이용하면 4자 이상, 12자 이하의 문자열 필터링이 가능하다.
완성된 코드는 아래와 같다.
var regType1 = /^[A-Za-z0-9+]*$/;
if (regType1.test(document.getElementById('userid').value)) { alert('아이디가 조건에 맞지 않습니다'); }
- NoPD -
var email_regx=/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
var pass_regx=/^[0-9a-zA-Z]{4,10}$/;
var num_regx=/^[0-9]*$/;
'Develop > Javascript' 카테고리의 다른 글
클로저 (Closures) (0) | 2015.08.10 |
---|---|
[JavaScript] 변수타입 (0) | 2014.07.28 |
[Javascript] 자바스크립트 정규표현식 체크 (0) | 2014.02.20 |
[javascript] parseInt를 사용할때 08과 09가 제대로 표현되지 않을때 (0) | 2014.02.11 |