자바스크립트의 기본 내장 객체 중 하나
생성 방법
var regExp1 = new RegExp('text');
var regExp2 = /text/;
test() : 정규 표현식과 일치하는 문자열 존재 여부 반환
exec() : 정규 표현식과 일치하는 문자열 반환
match(regExp): 정규 표현식과 일치하는 부분 반환
replace(regExp, replacement): 정규 표현식과 일치하는 부분 변경
search(regExp): 정규 표현식과 일치하는 부분의 위치 반환
split(regExp): 정규 표현식을 기준으로 문자열을 잘라 배열 반환
replace() 메소드 사용
대체 문자 정규 표현식 기호
$& : 일치하는 문자열
$` : 일치하는 부분의 앞부분 문자열
$' : 일치하는 부분의 뒷부분 문자열
$1, $2, $3 : 그룹
'a'.replace(/a/, '+$&+'); // a -> +a+ 변환
'abcde'.replace(/(a)(b)(c)/, '+$1=$2=$3+'); // abcde -> +a=b=c+de
g : 전역 비교
i : 대소문자 상관없이 비교
m : 여러 줄의 검사를 수행 // 앵커 문자 사용
var regExp = /Expression/im;
var regExp = new regExp('Expression', 'im');
^abc : 맨 앞 문자가 abc
abc$ : 맨 뒤 문자가 abc
줄바꿈이 존재하는 문자열 비교시 m 플래그 문자가 지정되어있으면 각 줄당 앵커를 확인
예시
'Javascript\njQuery\nAjax'.replace(/^j/igm, '+$&+');
예시 결과
"+J+avascript
+j+Query
Ajax"
. : 모든 글자
[abc] : 괄호 안의 글자
[^abc] : 괄호 안의 글자 제외
[a-z] : 알파벳 a부터 z까지
[A-Z] : 알파벳 A부터 Z까지
[0-9] : 숫자 0부터 9까지
\d : 숫자
\w : 아무 단어(숫자 포함)
\s : 공백 문자(탭, 띄어쓰기, 개행)
\D : 숫자 아님
\W : 아무 단어 아님
\S : 공백 문자 아님
'Javascript jQuery Ajax'.replace(/[aj]/igm, '+$&'); -> "+J+av+ascript +jQuery +A+j+ax"
'910209-2001211'.replace(/\d\d\d\d\d\d-[1234]\d\d\d\d\d\d/, '+$&+'); -> "+910209-2001211+"
'910209-2001211999'.replace(/\d\d\d\d\d\d-[1234]\d\d\d\d\d\d/, '+$&+'); -> "+910209-2001211+999"
a+ : a가 적어도 1개 이상
a* : a가 0개 또는 여러 개
a? : a가 0개 또는 1개
a{5} : a가 5개
a{2,5} : a가 2~5개
a{2,} : a가 2개 이상
a{,2} : a가 2개 이하
var regExp = /([0-9]|[a-z])/g;
'java'.replace(regExp, '').length -> 0
'Java'.replace(regExp, '').length -> 1
var regExp = /([가-힣])/g;
'자바'.replace(regExp, '').length -> 0
'Java'.replace(regExp, '').length -> 4
var regExp = /\w+@\w+.\w+/;
'java@java.com'.replace(regExp, '').length -> 0
'자바'.replace(regExp, '').length -> 2