JAVA/JavaScript
JavaScript 영문/숫자 조합 정규식 (영문+숫자 필수)
java나유
2023. 1. 16. 17:03
작업 중에
영문+숫자 조합 정규식이 필요한데
구글링 했더니.. 대부분 영문+숫자(필수아님) 이었다.
드디어 찾고 찾은 정규식을 기록해둔다.
최소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