본문 바로가기
프론트엔드/Javascript

자주쓰는 정규식 표현들 모음

by bellmir 2022. 1. 11.

자주쓰는 정규식표현(regexr) 및 형식(format) 모음

 

프로젝트를 진행하다 보면 로그인이나 회원가입 페이지 등을 개발할 때, 사용자가 입력한 값에 유효성 검사를 해야하는 경우가 많다.

여러 프로젝트를 반복적으로 진행하다 보니 자주 쓰는 정규식 표현들이 보여서 이번기회에 정리해 보았다.

 

<목차>

  1. Check
  2. 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]+$/

 

주민번호 정규식 (Social Security Number regexr)

// (앞) 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

댓글