정규 표현식

hzn·2022년 12월 12일
0

etc

목록 보기
11/13
post-thumbnail

정규 표현식

  • 특정한 규칙에 따른 문자열 집합을 표현하기 위해 사용되는 형식 언어
  • 정규표현식을 사용한다면 한 줄의 코드만으로 이메일이나 휴대전화 번호의 유효성을 검사할 수 있지만, 만약 그렇지 않는다면 같은 결과를 얻기 위해 굉장히 긴 코드가 필요.

정규 표현식 예시

이메일 유효성 검사

const email = 'kimcoding@codestates.com';
let result = '올바릅니다.';

let regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;

if(regExp.test(email) === false) result = '올바르지 않습니다.';
result;

cf) 정규 표현식 아닌 경우

  • 상대적으로 매우 긴 코드가 필요
  • 다 검증하려면 너무 복잡해서 여기서는 영문 소문자인지 아닌지만 확인..
const email = 'kimcoding@codestates.com';
let result = '올바릅니다.';

let idx = email.indexOf('@');
if(idx === -1) result = '영문 소문자가 아닙니다.';

let ID = email.slice(0,idx);

ID.split('').forEach(e => {
	e = e.charCodeAt(0);
	if(e < 97 || e > 122){
	result = '영문 소문자가 아닙니다.';
	}
});

result;

휴대전화 번호 유효성 검사

let regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;

정규표현식 사용하기

리터럴 패턴

  • 정규표현식을 슬래시(/)로 감싸 사용
  • 슬래시 안에 들어온 문자열이 찾고자 하는 문자열
let pattern = /c/;
// 'c를 찾을거야!'라고 컴퓨터에 명령을 내리는 것.

생성자 함수 호출 패턴

  • RegExp 객체의 생성자 함수를 호출하여 사용

정규표현식 패턴

0개의 댓글