본문 바로가기
Tip & Tech/Tech

[정규식] 사용방법/ 정규식 예제 / 정규표현식 문법

by 나비와꽃기린 2016. 7. 20.

아 정규식 진짜 @$*%&@)($&^@$^_

매번 찾아보기도 짜증나고 어렵고 공부를 하자 공부를………………………..!!!!!!!!!

정규식 할 때마다 예시에 추가해 나가야지..

 

일단 정규식을 직접 test 해볼 수 있는 site는 여기

>>>>>>>>>>>>>>>> http://regexr.com/ <<<<<<<<<<<<<<<<<<<<<<

 

 

필자가 정리한 것 + 출처내용 정리

출처 : http://letusgo.tistory.com/entry/Javascript

출처 : http://yaku.tistory.com/406

 

1. 사용방법

l  RegExp.test(string)

   -결과값은 true/falsereturn된다.

var match = /sample/.test("sample text");

console.log(match);

 

l  "^The": "The"로 시작하는 문자열

"of despair$": "of despair"로 끝나는 문자열

 "^abc$": "abc"로 시작하고 "abc"로 끝나는 문자열 ("abc" 라는 문자열도 해당됨)

"ab*": a뒤에 0 이상의 b가 있는 문자열 ("a", "ab", "abbb", );

 "ab+": 위와 동일 하지만 최소한 하나 이상 b가 있어야 함 ("ab", "abbb", );

 "ab?": b가 하나 있을 수도 있고 없을 수도 있음 (ab 또는 a)

"ab{2}": a뒤에 2개의 b가 있는 문자열 ("abb");

  "ab{2,}": a뒤에 최소한 2개 이상의 b가 있는 문자열 ("abb", "abbbb", .);

  "ab{3,5}": a뒤에 3개에서 5사이의 b가 있는 문자열 ("abbb", "abbbb", 또는 "abbbbb").

 

 

 

2. 예시 (필자가 사용했던 예시 포함)

모든 공백 체크 정규식

var regExp = /\s/g;

숫자만 체크 정규식

var regExp = /^[0-9]+$/;

이메일 체크 정규식

var regExp = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;

핸드폰번호 정규식

var regExp = /^\d{3}-\d{3,4}-\d{4}$/;

일반 전화번호 정규식

var regExp = /^\d{2,3}-\d{3,4}-\d{4}$/; 아이디나 비밀번호 정규식 

아이디나 비밀번호 정규식 

var regExp = /^[a-z0-9_]{4,20}$/;

휴대폰번호 체크 정규식 

var regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;

a 있는 문자열

var re = /a/ 

a~z 사이의 모든 문자

var re = /[a-z]/

 a~z, A~Z 0~9 사이의 모든 문자

var re = /[a-zA-Z0-9]/

 a~z 혹은 0~9사이의 문자

var re = /[a-z]|[0-9]/

 a 혹은 b 혹은 c 문자

var re = /a|b|c/ 

a~z까지의 문자가 아닌

문자("^" 부정)

var re = /[^a-z]/

문자의 처음이 a~z 시작되는 문장

var re = /^[a-z]/ 

 문자가 a~z 끝남

var re = /[a-z]$/

태그(< >) 찾아 제거 (안에 내용까지)

var re = "<[^<|>]*>";

var re = /[<][^>]*[>]/gi;

한글제거

var RegExpHG = "(/[-|-|-]/)";

str = str.replace(RegExpHG,"");  --replace‘’만들어 버린다.

숫자 조합 체크

if ((new RegExp(/[^a-z|^0-9]/gi)).test(frm.loginid.value)) {
    alert("ID는 영숫자 조합만 사용하세요"); 

    frm.loginid.focus(); 
}

정수 소수점 포함 숫자들만 통과시키는 필터 (음수 포함)

var pattern =  /^[-]?\d+(?:[.]\d+)?$/;

정수 소수정 포함 숫자들만

(음수X, 소수점 2자리 제한)

var pattern = /^\d+(?:[.]?[\d]?[\d])?$/;

숫자 x, X, P, E 포함한 스트링만 통과시키는 필터

var pattern = /[^1234567890xXPE]/;

ex) pXP : false

특수문자 포함 체크

var pattern = /[^\w\s]/i;

ex) @123 : false

다음과 같은 형식만 통과함. Q 시작하면서, 0000~9999 까지의 숫자만 Q 뒤에

var pattern = /^Q[0-9][0-9][0-9][0-9]$/;

숫자만 입력 가능

다른 문자 입력 자동 삭제

var pattern=/^[1-9]{1}[0-9]*$/g                         

if( !pattern.test(_val) ){

target.val(_val.replace(/[^0-9+]/g,''));

return;

}

이메일 체크(숫자, 영어, _ , - 입력 제한)

var emailChk = /^([A-Za-z0-9]|[\-]|[\_]){2,20}$/g

 

 

 

댓글1