[22/01/18] 정규식

Que Lin·2022년 1월 18일
0

1day 1commit

목록 보기
11/63

정규표현식

: 프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어를 말한다.(일정한 규칙을 가진 텍스트 문자열을 사용하는 경우)

^ : 문자열의 시작
$ : 문자열의 종료
/ : 패턴구분자 시작
. : 모든 아무 문자 하나와 일치하는 메타 문자
| : 왼쪽과 오른쪽 패턴중에 아무 패턴이나 일치한다. 여러개가 연결되면 그중에서 단 하나의 패턴만 일치한다.
\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>
profile
1일 1커밋 1일 1벨로그!

0개의 댓글