본문 바로가기
Javascript

[Javascript; 자바스크립트] 비밀번호 정규식

by daddydontsleep 2022. 9. 28.
728x90
728x90

회원가입, 비밀번호 변경을 할 경우 웹취약점 관련하여 비밀번호 변경 규칙을 지정하는일이 있습니다.

 

오늘은 비밀번호 리터럴(Literal)방식의 정규식에 대해 작성하겠습니다.

 

정규표현식은

//

로 감싸진 패턴을 리터럴로 사용합니다.

let value = "(?=.*[a-zA-Z])";      // 영문
let value = "(?=.*[A-Z])";         // 최소 한개 이상의 대문자 영문
let value = "(?=.*[a-z])";         // 최소 한개 이상의 소문자 영문
let value = "(?=.*[0-9])";         // 최소 한개 이상의 숫자
let value = "(?=.*?[#?!@$%^&*-])"  // 최소 한개 이상의 특수 문자
let value = ".{8,}"                // 최소 8자리 이상

 

1. 최소 8자리 이상, 하나 이상의 문자, 하나 이상의 숫자

const regex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
const input = "Abc12345"; // 검증할 문자열

if(!regex.test(input)) {
	alert("비밀번호는 최소 8자 이상, 하나 이상의 문자와 하나 이상의 숫자를 포함해야합니다.");
    return false;
}

2. 최소 8자리 이상, 하나 이상의 문자, 하나 이상의 숫자 및 하나 이상의 특수 문자

const regex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/;
const input = "Abc12345@"; // 검증할 문자열

if(!regex.test(input)) {
	alert("비밀번호는 최소 8 자, 하나 이상의 영문자, 하나 이상의 특수 문자 및 하나 이상의 숫자를 포함해야합니다.");
    return false;
}

3. 최소 8자리 이상, 하나 이상의 대문자, 하나 이상의 소문자 및 하나 이상의 숫자

const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/;
const input = "Abc12345"; // 검증할 문자열

if(!regex.test(input)) {
	alert("비밀번호는 최소 8 자, 하나 이상의 대문자, 하나 이상의 소문자 및 하나 이상의 숫자를 포함해야합니다.");
	return false;
}

4. 최소 8자리 이상, 하나 이상의 대문자, 하나 이상의 소문자, 하나 이상의 숫자 및 하나 이상의 특수 문자

const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
const input = "Abc12345@"; // 검증할 문자열

if(!regex.test(input)) {
	alert("비밀번호는 최소 8 자, 하나 이상의 대문자, 하나 이상의 소문자, 하나 이상의 숫자 및 하나 이상의 특수 문자를 포함해야합니다.");
	return false;
}

5. 최소 8자리 이상, 최대 10자리 이하, 하나 이상의 대문자, 하나 이상의 소문자, 하나 이상의 숫자 및 하나 이상의 특수 문자

const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$/;
const input = "Abc12345@"; // 검증할 문자열

if(!regex.test(input)) {
	alert("비밀번호는 최소 8자, 최대 10자, 하나 이상의 대문자, 하나 이상의 소문자, 하나 이상의 숫자 및 하나 이상의 특수 문자를 포함해야합니다.");
	return false;
}

 

 

참고블로그

 

정규표현식, 이렇게 시작하자!

매일 쓰는 것도, 가독성이 좋은 것도 아니지만, 모르면 안되는 정규표현식. 저는 이렇게 공부하기 시작했습니다! (자바스크립트를 기준으로 설명합니다)

heropy.blog

참고블로그

 

[Javascript] 비밀번호 정규식 - 8자 이상의 문자열, 하나 이상 숫자, 문자, 특수문자 포함하기 : WRAPUP

웹취약점과 관련하여 비밀번호 변경 규칙을 지정하는 것은 필수입니다.사용자 패스워드 변경에 대한 규칙이 없으면 계정관리에 취약점이 생겨 해킹에 위험성이 높아집니다.또한, 이전에 사용

www.wrapuppro.com

참고블로그

 

비밀번호(Password) 정규표현식

정규식 표현 정리 (?=.*[a-zA-Z]) // 영문 (?=.*?[A-Z]) // 최소 한개의 대문자 영문 (?=.*?[a-z]) // 최소 한개의 소문자 영문 (?=.*?[0-9]) // 최소 한개의 숫자 (?=.*?[#[email protected]$%^&*-]) // 최소 한개의 특수 문

intrepidgeeks.com

 

728x90
300x250