RegExp 31
자주 사용하는 정규표현식
특정 단어로 시작하는지 검사
'http://' 또는 'https://'로 시작하는지 검사
const url = 'https://naver.com';
/^https?:\/\//.test(url);
const url = 'https://naver.com';
/^(http|https):\/\//.test(url);
특정 단어로 끝나는지 검사
검색 대상 문자열이 'html'로 끝나는지 검사
const fileName = 'index.html';
/html$/.test(fileName);
숫자로만 이루어진 문자열인지 검사
검색 대상 문자열이 숫자로만 이루어진 문자열인지 검사
const target = '12345';
/^\d+$/.test(target);
하나 이상의 공백으로 시작하는지 검사
검색 대상 문자열이 하나 이상의 공백으로 시작하는지 검사
const target = ' Hi';
/^[\s]+/.test(target);
아이디로 사용 가능한지 검사
검색 대상 문자열이 알파벳 대소문자 또는 숫자로 시작하고 끝나며 4~10 자리인지 검사
const id = 'abc1234';
/^[A-Za-z0-9]{4,10}$/.test(id);
메일 주소 형식에 맞는지 검사
검색 대상 문자열이 메일 주소 형식에 맞는지 검사
const email = 'test@gmail.com';
/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/.test(email);
인터넷 메시지 형식 규약인 RFC 5322 에 맞는 정교한 패턴 매칭은 다음과 같다.
/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/g
General Email Regex (RFC 5322 Official Standard);
핸드폰 번호 형식에 맞는지 검사
검색 대상 문자열이 핸드폰 번호 형식에 맞는지 검사
const cellphone = '010-1234-5678';
/^\d{3}-\d{3,4}-\d{4}$/.test(cellphone);
특수 문자 포함 여부 검사
검색 대상 문자열에 특수 문자가 포함되어 있는지 검사 (특수 문자는 A-Za-z0-9 이외의 문자)
const target = 'abc#1234';
(/[^A-Za-z0-9/gi).test(target);
특수 문자를 제거할 때는 String.prototype.replace 메서드를 사용한다.
const target = 'abc#1234';
target.replace(/[^A-Za-z0-9]/gi, ''); // abc1234