정규표현식 정리

노요셉·2020년 9월 23일
0

당장 사용에 필요한 것만 정리
모르고 썻던 내용도 정리

정규표현식 뭘 할건가?

  • 문자 검색(search)
  • 문자 대체(replace)
  • 문자 추출(extract)

사실 대부분
문자열.replace(정규표현식,대체문자); 즉 전화번호를 01012345678의 문자열을 010-1234-5678 로 화면에 보여달라는 요구사항이 항상 있고, 액수를 표현할때 , 천단위로 콤마를 찍잖아요.

자바스크립트 메서드

split: 일치하는 문자열을 분할하여 배열로 반환
match: 일치하는 문자열의 배열 반환

정규표현식 시작과 끝
/패턴/

보통 /gi로 끝나는 경우가 많은데 이런걸 flag라고 합니다.

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(숫자)개 연속 일치
\ : 이스케이프 문자 /.\?\/$\^/

갓퍼런스:
https://heropy.blog/2018/10/28/regexp/

profile
서로 아는 것들을 공유해요~

0개의 댓글