본문 바로가기
JAVA/JavaScript

JavaScript 영문/숫자 조합 정규식 (영문+숫자 필수)

by java나유 2023. 1. 16.

작업 중에 

영문+숫자 조합 정규식이 필요한데

구글링 했더니.. 대부분 영문+숫자(필수아님) 이었다.

 

드디어 찾고 찾은 정규식을 기록해둔다.

 

최소4글자 최대12글 영문(필수),숫자(필수)

const idFilters = /^[a-zA-Z](?=.*[a-zA-Z])(?=.*[0-9]).{4,12}$/g;

 

사용법 

if(vm.userDto.userId ==""){
	alert("아이디를 입력해주세요.");
	}
	else if(!idFilters.test(vm.userDto.userId)){
	console.log(idFilters.test(vm.userDto.userId));
			alert("영문(소문자)과 숫자로 조합된 4~12글자로 생성해주세요.");
	}

 

23.02.01 추가

 

위 소스는... 4,12인데도 글자 수가 이상해서 3,14으로 고쳤다. 그리고

숫자가 앞에 오는 경우는 안 된다.

const idFilters = /^[a-zA-Z](?=.*[a-zA-Z])(?=.*[0-9]).{4,12}$/g;

 

그래서 이렇게 고쳤다.

 

최소(4글자)

최대(12글자)

영 대/소문자(필수)+숫자 (필수)

제일처음 글자가 영문 이어도 ok

제일처음 글자가 숫자 이어도 ok

	var idFilters = /^[a-zA-Z0-9](?=.*[a-zA-Z])(?=.*[0-9]).{3,12}$/g;

 

23.02.01 오류추가

 

위 코드로 진행했더니 위에 적어둔 조건들은 ok이지만.

마지막에 특수문자가 오는것도 ok 되버린다. @나 + 같은.. 

 

오류는 찾아서 수정해놓겠다 

 

23.02.01 오류해결

 

특수문자를 별도로 replace 해주었다.

// 특수문자 정규식
const reg = /[^a-zA-Z0-9ㄱ-힣]/g;
/*사용예시*/
vm.userDto.userId = vm.userDto.userId.replace(reg,"");
728x90

댓글