String 객체
.search(정규표현식 | 문자열)
정규표현식을 전달인자, 가장처음 매칭되는 위치를 반환, 매칭이 없다면 -1을 반환
"JavaScript".search(/script/i);
.replace(정규표현식 | 문자열, 교체할 문자열 | 함수)
'g'가 있음 모든 매칭 문자열 교체,
만약 교체할 문자열에 $숫자 가 나오면, 숫자 번째 매칭된 부분 문자열로 치환됨.
두번째 인자로 교체될 문자열을 동적으로 계산하는 함수 가능
.match(정규표현식)
매치된 결과를 배열로 반환. g의 유무에 따라 아래와 같은 결과
"1=a plus 2=bb equals 3=c".match(/(\d+)=(\w)/); // => ["1=a", "1", "a"] "1=a plus 2=bb equals 3=c".match(/(\d+)=(\w)/g); // => ["1=a", "2=b", "3=c"]
g 가 없음,리턴값에 index 프로퍼티가 존재하게 되며, 이는 매칭이 시작된 위치.
input 프로퍼티가 존재, 이는 검색 대상 문자열의 사본.
s.match(r) 은 r.exec(s)와 같은 값을 반환.
.split(문자 | 정규표현식)
전달인자를 분리 기준으로 문자열을 쪼개 배열을 리턴.
RegExp 객체
문자열 리터럴과 정규표현식은 둘다 '\'를 이스케이프 시퀀스로 사용하기 때문에 RegExp 생성자의문자열 리터럴로 전달할 때는 '\'를 '\\'로 바꿔야 한다.
new RegExp("\\d{}5", "g")
.exec(문자열)
매치된 부분이 없다면 null 리턴, 매치된 부분이 있다면 배열 리턴, [매치된 문자열, 괄호1, ...]
index 프로퍼티에 매치가 일어난 idx 저장.
input 프로퍼티에 검색 대상 문자열. 참조?
g 플래그 무시
* 정규표현식 lastIndex 속성에 다음 매치를 시작할 idx값 저장.
처음부터 다시 검색하려면 반듯시 0으로 초기화 해야 함.
while((result = pattern.exec(text)) != null) { ... 반복 처리.. }
.test(문자열)
매치되는 부분이 있음 true 아님 false를 리턴.
.lastIndex가 가르키는 위치에서 검색을 시작.