반응형
정규표현식 패턴
/패턴/
대표적인 패턴 의미
패턴 | 의미 |
x | 문자 x |
xyz | 문자 xyz |
[xyz] | x,y,z 중 하나의 문자 |
[a-z] | a~z중 하나의 문자 |
[^xyz] | x,y,z 가 아닌 하나의 문자 |
[^a-z] | a~z가 아닌 하나의 문자 |
abc|xyz | 문자열 abc 또는 xyz |
{숫자} | 반복 횟수 |
^x | 시작문자 x |
x$ | 종료문자 x |
. | 하나의 문자 |
x* | 0개이상 계속되는 x |
\ | 다음에 오는 문자를 이스케이프 처리 |
\d | 숫자 0~9 |
\D | 숫자가 아닌 문자 = [^0-9] |
\w | 영문, 숫자, 언더바 = [A-Za-z0-9_] |
\s | 공백문자(스페이스, 탭, 줄바꿈 등) |
\S | 공백문자 이외의 문자 = [^\s] |
\t | 수평탭 |
\n | 줄바꿈 코드 |
정규표현식 테스트 예제
//======================
// 1. 콘솔로 간단히 확인
//======================
// 정규표현식 선언
var myRe = /^[a-z0-9_-]{2,10}$/;
// 테스트할 문자열 선언
var inputText = 'abcd-_1234';
// 정규 표현식으로 체크하여 콘솔에 출력
// 정규 표현식에 맞다면 true 틀리면 false를 리턴
console.log(myRe.test(inputText);
//======================
// 2. 함수로 만들어 사용
//======================
function checkValidSomeThing(param) {
const myRe = /^[a-z0-9_-]{2,10}$/;
return myre.test(param);
}
checkValidSomeThing('abcd-_1234'); // true
checkValidSomeThing('한글'); // false
checkValidSomeThing('1'); // false
자주 사용하는 정규표현식
1. 공백없는 숫자와 대소문자
/^[a-zA-Z0-9]*$/
2. 공백포함 숫자와 대소문자
/^[a-zA-Z0-9 ]*$/
3. 한글포함 특수문자와 공백
/[^?a-zA-Z0-9/]/
4. 한글제외 특수문자와 공백
/[^-가-?a-zA-Z0-9/ ]/
5. 영문자, 소문자, 숫자, "-","_" 로만 구성된 길이 2~10자리 사이의 문자열
/^[a-z0-9_-]{2,10}$/
6. 19자리 숫자와 "-"로 구성된 신용카드 번호
/^[0-9-]{19}$/
7. 숫자로 구성된 4자리-4자리-4자리-4자리 유형 체크 (ex. 신용카드 번호)
/^[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}$/
8. 영문자 대소문자, 숫자로만 구성
/[a-zA-Z0-9]/
9. 3자리-3~4자리-4자리(사이에 문자 아무거나 가능)
/^\d[3]-\d[3,4]-\d[4]$/
10. 일반 전화번호
/^\d{2,3}-\d{3,4}-\d{4}$/;
11. 휴대폰 번호
/^\d{3}-\d{3,4}-\d{4}$/;
12. 맥어드레스 체크
/^[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}$/
13. IP 주소 (IPv4)
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
14. 일반 이메일 주소 체크
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
15. 정밀한 이메일 주소 체크
/(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/
16. 최소 8자리 이상 영문 대소문자, 숫자, 특수문자가 각각 1개 이상 (패스워드 체크시 활용)
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/
17. 최소 8자리 이상 숫자, 특수문자가 각각 1개 이상 (패스워드 체크시 활용)
/^(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/
18. URL 체크 (프로토콜 포함, ex) http://www.naver.com )
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/
19. URL 체크 (프로토콜 옵션, ex) http://www.naver.com, www.naver.com)
/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/
20. HTML 태그인지 체크
/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/
21. 하이퍼링크 체크
/(?!<a\sname=\"([\w\s\d\-\.\#]+)\"><\/a>)<a\sname=\"([\w\s\d\-\.\#]+)\">(.*?)<\/a>/
22. 숫자인지 체크
^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$
23. 웹사이트 링크인지 체크
<a\s+(?:[^>]*)href=\"((?:https:\/\/|http:\/\/)(?:.*?))">(?:.*?)<\/a>
24. 년월일 (yyyy-mm-dd) 체크
/^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/
25. 주민등록번호 체크
/^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{1,5}$/
반응형
'개발 > javascript' 카테고리의 다른 글
[javascript] 문자열 길이 맞추기 padStart, padEnd (0) | 2021.01.18 |
---|---|
[javascript] 랜덤값 구하기 crypto.getRandomValues() (0) | 2021.01.18 |
[javascript] Async / Await 예제 (0) | 2021.01.18 |
[javascript] Promiss 예제 (0) | 2021.01.18 |
[javascript] fetch 예제 (0) | 2021.01.18 |
댓글