정규 표현식
- 특정한 규칙에 따른 문자열 집합을 표현하기 위해 사용되는 형식 언어
- 정규표현식을 사용한다면 한 줄의 코드만으로 이메일이나 휴대전화 번호의 유효성을 검사할 수 있지만, 만약 그렇지 않는다면 같은 결과를 얻기 위해 굉장히 긴 코드가 필요.
정규 표현식 예시
이메일 유효성 검사
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/;
생성자 함수 호출 패턴
- RegExp 객체의 생성자 함수를 호출하여 사용
정규표현식 패턴
