자주쓰는 정규식표현(regexr) 및 형식(format) 모음
프로젝트를 진행하다 보면 로그인이나 회원가입 페이지 등을 개발할 때, 사용자가 입력한 값에 유효성 검사를 해야하는 경우가 많다.
여러 프로젝트를 반복적으로 진행하다 보니 자주 쓰는 정규식 표현들이 보여서 이번기회에 정리해 보았다.
<목차>
- Check
- Format
형식 체크 (Checking)
입력값이 형식에 맞는지 체크할 때 사용하는 정규식들의 모음이다.
더보기
정규식과 'test' 내장 함수를 이용하여, 입력값이 해당 정규식에 부합한지를 true or false로 return 받는다.
function numberCheck(num=''){
// 숫자인지 체크
const reg_num = /^[0-9]+$/;
return reg_num.test(num); // true, false 리턴
}
비밀번호 정규식 (Password regexr)
// 숫자, 소문자, 대문자, 특수문자 각각 1개이상 (8~15글자)
/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[?!@#$%^&*()+=_-]).{8,15}/
// 숫자, 영어, 특수문자 각각 1개이상 (8~15글자)
/(?=.*\d)(?=.*[a-zA-Z])(?=.*[?!@#$%^&*()+=_-]).{8,15}/
// 숫자, 소문자, 대문자 각각 1개이상 (8~15글자)
/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}/
// 숫자, 영어 각각 1개이상 (8~15글자)
/(?=.*\d)(?=.*[a-zA-Z]).{8,15}/
이메일 정규식 (Email regexr)
// ex) test@test.com
/^([0-9a-zA-Z_.-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/;
아이디 정규식 (ID regexr)
// 한글, 영어, 숫자, 특수문자만 가능
/^[가-힣a-zA-Z~?!@#$%^&*()<>+=_-]+$/
한글 정규식 (Korean regexr)
// 한글만(초성x), 띄어쓰기 불가능
/^[가-힣]+$/
// 한글만(초성x), 띄어쓰기 가능
/^[가-힣\s]+$/
// 한글만(초성O), 띄어쓰기 불가능
/^[가-힣ㄱ-ㅎㅏ-ㅣ]+$/
// 한글만(초성O), 띄어쓰기 가능
/^[가-힣ㄱ-ㅎㅏ-ㅣ\s]+$/
영어 정규식 (English regexr)
// 영문만 가능
/^[a-zA-Z]+$/
// 영문,띄어쓰기만 가능
/^[a-zA-Z\s]+$/
숫자 정규식 (Number regexr)
// 숫자만 가능
/^[0-9]+$/
// 숫자,띄어쓰기만 가능
/^[0-9\s]+$/
// (앞) 1~2자리는 년도 -> 아무 숫자,
// (앞) 3~4자리는 월 -> 01~12까지만
// (앞) 5~6자리는 일 -> 01~31까지만
// (뒤) 첫자리는 성별 -> 1~4까지만
/\d{2}([0]\d|[1][0-2])([0][1-9]|[1-2]\d|[3][0-1])[-]*[1-4]\d{6}/g
Formatting
입력값을 정해놓은 형식으로 변환하는 방법의 모음이다. 정규식과 replace함수를 이용하여 변환한다.
핸드폰 번호 형식 (PhoneNumber format)
// 핸드폰 형식만 (010-0000-0000)
return phoneNum.replace(/[^0-9]/g, "") //숫자만 남김
.replace(/(\d{3})(\d{4})(\d{4})/, '$1-$2-$3');
// 핸드폰 + 유선 전화번호(000-000-0000 or 000-0000-0000)
return phoneNum.replace(/[^0-9]/g, "") // 숫자만 남김
.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");
// 핸드폰 + 유선 + 0000-0000형식 전화번호
function phoneFormat(phoneNum=''){
phoneNum = phoneNum.replace(/[^0-9]/g, "") //숫자만
if(phoneNum.length == 8) {
return phoneNum.replace(/(\d{4})(\d{4})/, '$1-$2');
} else{
return phoneNum.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");
}
}
숫자에 쉼표(,) 넣기 (Number format)
// 숫자 들어오면 3자리마다 , 붙이기
// 숫자를 제외한 글자는 삭제한 후 Intl.NumberFormat()의 format함수에 인자로 전달한다.
return new Intl.NumberFormat().format(num.replace(/[^0-9]/g, ""));
// 000000-0000000
return phoneNum.replace(/[^0-9]/g, "") // 숫자만 남김
.replace(/(\d{6})(\d{7})/, '$1-$2'); // 주민번호 형식
사업자등록번호 형식
// 000-00-00000
return num.replace(/[^0-9]/g, "") //숫자만 남김
.replace(/(\d{3})(\d{2})(\d{5})/, '$1-$2-$3'); // 사업자 등록 번호 형식
* 추가할 것이 더 생기면 차후에 추가하겠습니다 :)
'프론트엔드 > Javascript' 카테고리의 다른 글
(Javascript) array 비교 방법 (0) | 2021.12.15 |
---|
댓글