당장 사용에 필요한 것만 정리
모르고 썻던 내용도 정리
- 문자 검색(search)
- 문자 대체(replace)
- 문자 추출(extract)
사실 대부분
문자열.replace(정규표현식,대체문자); 즉 전화번호를 01012345678의 문자열을 010-1234-5678 로 화면에 보여달라는 요구사항이 항상 있고, 액수를 표현할때 , 천단위로 콤마를 찍잖아요.
split: 일치하는 문자열을 분할하여 배열로 반환
match: 일치하는 문자열의 배열 반환
정규표현식 시작과 끝
/패턴/
보통 /gi
로 끝나는 경우가 많은데 이런걸 flag라고 합니다.
g: 모든 문자와 여러줄 일치
i: 대소문자 구분안하고 일치
그래서
문자열.replace(/,/g, '');
: 문자열의 모든 ,를 공백으로 치환하라는 것이죠.
그러면 g를 안붙이면 최초로 일치한 결과만 공백으로 치환합니다.
전화번호형태로 치환해주는 정규표현식
value.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/, '$1-$2-$3')
^ , . {3} [가-힣] + [0-9] 등 표현들이 들어가는데 이런걸 정규표현식 패턴이라고 함.
표현식1|표현식2
: 표현식1 또는 표현식2와 일치, 인덱스가 작은 것을 우선 반환
$1~9
: 문자 대체(replace) 시 캡처(Capture)된 값 참조
()
: 캡처(Capture)할 그룹
.
: 임의의 한 문자와 일치
^
: Line의 시작에서 일치
$
: Line의 끝에서 일치
*
: 0회 이상 연속으로 반복되는 문자와 가능한 많이 일치
+
: 1회 이상 연속으로 반복되는 문자와 가능한 많이 일치
{3}
: 3(숫자)개 연속 일치
\
: 이스케이프 문자 /.\?\/$\^/