일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 더존ERP
- 이메일주소
- JavaScript
- jquery
- 트랜젝션
- 메일
- port
- erp
- pingtest
- 핑테스트
- python
- 문자열
- crontab
- 핑
- 목차만들기
- 정규식
- php
- 리눅스
- js
- 포트
- 유효성
- sendmail
- MSSQL
- sp_who
- 자바스크립트
- 정규표현식
- codeigniter
- MYSQL
- ping
- vscode
Archives
- Today
- Total
ioerror
자주 사용하는 정규표현식 모음 본문
반응형
정규표현식이란
정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다. 자바스크립트에서, 정규 표현식 또한 객체입니다. 이 패턴들은 RegExp의 exec 메서드와 test 메서드 , 그리고 String의 match메서드 , replace메서드 , search메서드 , split 메서드와 함께 쓰입니다.
라고 MDN에서 설명하고 있다. "정규식"이라고도 말하는데 사람 이름 같아서 나는 "정규표현식"이라 하는 것이 좋다.
다시 말해 문장에서 특정 형식의 문자열을 검색하거나, 그것을 다른 문자열로 치환할 때 필요하다.
특히나 요즘 데이터 분석에서는 필수적으로 알아야 할 부분이고 깊이 파고들려면 책을 사서 공부를 해야 할 정도이다.
데이터 분석이 아닌 앱, 웹 개발에서는 사실 사용하는 정규표현식은 거의 정해져 있다고 볼 수 있다.
이메일 주소, 도메인 주소, 금액 형식을 숫자 형식으로 변경 또는 그 반대, 아이디 검사 등의 특정 정규표현식은 정말 자주 사용된다.
자주 사용되는 정규표현식
1. 이메일 주소 정규표현식
/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]+$/;
/^[a-z0-9_+.-]+@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/;
2. URL 주소 정규표현식
/* 모든 프로토콜 포함 */
/^(file|gopher|news|nntp|telnet|https?|ftps?|sftp):\/\/([a-z0-9-]+\.)+[a-z0-9]{2,4}.*$/
/* http(s):// 프로토콜이 있거나 없는 경우, 단순히 도메인 구조 검사 */
/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?/
3. 전화번호 정규표현식
/* 유선 전화 번호 */
/^(0[2-8][0-5]?)-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/
/* 휴대폰 (무선전화) 번호 */
/^(01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/
/* 유전 전화 + 휴대폰 번호 */
/^(0[2-8][0-5]?|01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/
/* 대표전화번호 1588 등 */
/^(1544|1566|1577|1588|1644|1688)-?([0-9]{4})$/
4. 날짜 형식 정규표현식
/* 2021-01-01 또는 21-01-01 으로 구분자는 하이픈(-), 점(.), 슬래시(/) 로 입력된 경우 */
/^\d{2,4}\[-.\/]\d{1,2}\[-.\/]\d{1,2}$/
/* 2021-01-01 또는 21-01-01 */
/^\d{2,4}-\d{1,2}-\d{1,2}$/
/* 2021/01/01 또는 21/01/01 */
/^\d{2,4}\/\d{1,2}\/\d{1,2}$/
/* 2021.01.01 또는 21.01.01 */
/^\d{2,4}\.\d{1,2}\.\d{1,2}$/
5. 주민등록번호, 외국인 등록번호 정규표현식
/* 주민등록번호 */
/^([0-9]{6})-?([0-9]{7})$/
/^(\d{6})-?(\d{7})$/
/* 외국인등록번호 */
/^(\d{6})-?(\d{5}[7-9]\d{1})$/
6. 사업자등록번호, 법인등록번호 정규표현식
/* 사업자등록번호 */
/([0-9]{3})-?([0-9]{2})-?([0-9]{5})/
/* 법인등록번호 */
/^([0-9]{6})\-([0-9]{7})$/
7. 영어 알파벳, 숫자 또는 한글, 공백, HTML 등 의 상황별 정규표현식
/* 영어와 숫자만 입력 (alnum) */
/^[0-9a-zA-Z]+$/
/* 한글만 입력 */
/^[ㄱ-힣]+$/
/* 영어만 입력 */
/^[a-zA-Z]+$/
/* 숫자만 입력 */
/^[0-9]+$/
/* 소숫점이 있는 금액 형식 */
/^[0-9\,\.]+$/
/* 공백(스페이스) */
/\s/
/* HTML 코드 */
/\<(/?[^\>]+)\>/
/* 첨부파일 지정된 확장자 확인 */
/([^\s]+(?=\.(jpg|gif|png))\.\2)/
8. 비밀번호 제약 정규표현식
/* 특수문자가 최소 1개 이상 포함된 영어,숫자 조합의 6~30개의 글자 */
/^(?=.*[a-zA-Z])((?=.*\d)|(?=.*\W))(?=.*[!@#$%^*+=-]).{6,30}$/
정규표현식의 문법은
언어별(C, PHP, JS...)로 비슷하지만 사용법상에서 약간의 차이가 있으니 중요한 곳(결재, 금융, 데이터 분석 등)에 사용할 경우 작성한 정규표현식을 테스트해보는 것이 좋겠다.
아래는 정규표현식 테스트를 할 수 있는 사이트이며, 입력한 정규식의 내용을 설명을 해주는 기능이 있고(물론 영어로) 테스트도 가능하다.
regex101은 JS, PHP, Python, Java, GoLang 등의 언어별 정규표현식을 테스트할 수 있고, Regex Library에서 예제도 찾을 수 있다.
regexr은 CheatSheet와 정규식을 공유한 Community Pattern 이 유용하다.
반응형
'JavaScript' 카테고리의 다른 글
과목별 가중치(배점)가 설정된 경우 배점 환산 점수는? (0) | 2022.04.23 |
---|---|
분기의 n번째 월은? n월이 포함된 분기는? (0) | 2022.04.23 |
[JS] 문자열 채우기 padStart, padEnd (0) | 2021.06.26 |
[JS] 문자열 또는 숫자 배열의 내림차순, 오름차순 정렬하기 (0) | 2021.06.19 |
티스토리 목차(TOC) 만들기 - 3 (0) | 2021.05.19 |
Comments