: 프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어를 말한다.(일정한 규칙을 가진 텍스트 문자열을 사용하는 경우)
^ : 문자열의 시작
$ : 문자열의 종료
/ : 패턴구분자 시작
. : 모든 아무 문자 하나와 일치하는 메타 문자
| : 왼쪽과 오른쪽 패턴중에 아무 패턴이나 일치한다. 여러개가 연결되면 그중에서 단 하나의 패턴만 일치한다.
\d: 숫자에 해당하는 유니코드에 대응. [0-9]와 달리 아랍 문자, 페르시아 문자 등 다양한 숫자를 포괄
// 영문소문자, 숫자, 6~10자리 정규식
// 소문자 숫자가 반드시 1개 이상 사용되어야 함.
const exp = /^(?=.[a-z])(?=.\d)[a-z\d]{6,10}$/;
// 영문대소문자, 숫자, 6~10자리 정규식
// 소문자, 대문자, 숫자가 반드시 1개이상 사용되어야 함.
const exp1 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{6,10}$/;
// 네이버 아이디 정규식
// 영문소문자, 숫자, -_ 특수문자, 5~20자리
// 소문자, 숫자, 특수문자(-_)가 반드시 1개 이상 사용되어야 함.
// 특수문자 추가 (-_!*)[a-z\\d-_!*]
const exp = /^(?=.*[a-z])(?=.*\\d)(?=.*[-_])[a-z\\d-_]{5,20}$/;
//전화번호
3 - 4 - 4 자릿수
const exp = /^\d{3}-\d{4}-\d{4}$/;
정규식 적용하기
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script>
function idCheck() {
const id = document.getElementById('id').value;
const checkResult = document.getElementById('m_id-check');
const idLength = id.length;
console.log(idLength);
const exp = /^(?=.*[a-z])(?=.*\d)[a-z\d]{3,20}$/;
if(idLength == 0){
checkResult.innerHTML = '필수항목입니다'
checkResult.style.color = 'red';
}else if(!id.match(exp)){
checkResult.innerHTML = '숫자 포함 3~20자 이내로 작성해 주세요'
checkResult.style.color = 'red';
}
else if(id.match(exp)) {
$.ajax({
type : 'post',
url : 'idDuplicate',
data : {
'm_id' : id
},
dataType : 'text',
success : function(result) {
if (result == "ok") {
checkResult.style.color = 'green';
checkResult.innerHTML = '멋진 아이디네요';
} else {
checkResult.style.color = 'red';
checkResult.innerHTML = '이미 사용중인 아이디';
}
},
error : function() {
console.log('오타 찾으세요')
}
});
}
}
</script>