*Javascript*

[javascript] 정규표현식

깐부로부터 2021. 12. 21. 02:23
정규표현식

정규표현식(REGEX / REGXP : Regular Expression)이란,

특정 패턴을 가진 문자열을 찾거나 또는 찾아서 변경 할 때 사용하는 형식 언어

정규표현식을 사용하면 문자열에 대해 특정 패턴을 조건 검사하거나 변경 할 때

복잡한 조건을 제시할 필요 없이 간단하게 처리 가능

자바스크립트 뿐만 아니라 자바, 오라클 또는 다른 언어들에서도 사용 가능

 

 

* RegExp객체에서 제공하는 메소드 => 정규표현식객체.메소드명(검사할 문자열);

- 정규식.test(문자열) : 문자열에서 정규식값과 일치하는 값이 있다면 true, 없다면 false
- 정규식.exec(문자열) : 문자열에서 정규식값과 일치하는 값이 있다면 처음 매칭된 문자열을 반환, 없으면 null
* String 객체에서 제공하는 메소드 => 검사할문자열.메소드명(정규표현식객체);

- 문자열.match(정규식) : 문자열에서 정규식값과 "일치하는 값"을 찾아서 반환
- 문자열.search(정규식) : 문자열에서 정규식값과 "일치하는 값의 시작인덱스"을 반환 / 일치하는게 없으면 -1
- 문자열.replace(정규식, 바꿀값) : 문자열에서 정규식값과 일치하는 첫번째 값바꿀값으로 변경
- 문자열.split(정규식) : 정규식에서 지정된 값을 구분자로 쪼개서 값들이 담겨있는 배열로 반환

 

 

 

 

 

 

메타문자

메타문자를 이용해서 정규식으로 "검색 조건으로 삼을 특정 패턴"을 제시 가능

문자열이 해당 정규식으로 제시한 특정 패턴에 만족하는지

=> test() 통해 검사하거나,  replace()를 이용해 치환

 

 

 

 

 

 

 

 

 

 

플래그문자

/정규표현식/ 에 써줌

 

종류

  • i : 대소문자를 가리지않고 비교를 수행하겠다.
  • g (global) : 문자열 내의 모든 패턴을 찾겠다. (전역으로 비교)
  • m : 여러줄 비교를 수행하겠다.

 

 

 

정규표현식을 이용한 주민번호 확인

1단계 : 6글자 - 7글자

숫자 외의 다른 문자가 올 경우에도 글자수만 맞으면 OK 인 상태

 

 

 

2단계 : 숫자여야함, 성별자리는 1~4여야함

* 메타문자+
\d : 숫자 (== [0-9])
\D : 숫자를 제외한 모든 문자
\w : 영문자, 숫자, _(== [a-zA-Z0-9_])
\W : 영문자, 숫자, _를 제외한 모든 문자
\s : 공백문자 (띄어쓰기, 탭, 줄바꿈)
\S : 공백문제를 제외한 모든 문자

* 수량문자
+ : 최소한 1글자 이상 //a+b, b앞에 a 무조건 1개이상 있는 것만 선택, b앞에 a없는 것은 선택X
* : 0글자 이상(0글자도 가능) // a*b, b앞에 a가 여러개 있을 수도 없을 수도
? : 0글자 또는 1글자(2글자 이상은 불가) //a?b, b앞에 a가 없을수도 있을 수도(있을 땐 딱 1개만)

{5} : 5글자
{2,5} : 2글자 이상 5글자 이하
{2,} : 2글자 이상
{,5} : 5글자 이하(0도 포함)

 

 

 

3단계 : 생년월일

- 생년(두자리) : \d{2}
		아무 숫자로만 2자리 채우기
* 그룹핑 (경우1 | 경우2)
- 월(두자리) : (0[1-9]|1[0-2])
		앞의 자리가 0일 경우 1~9 (1월부터 9월)
                앞의 자리가 1일 경우 0~2 (10월부터 12월)
- 일(두자리) : (0[1-9]|[1-2][0-9]|3[0-1])
		앞의 자리가 0일 경우 1~9 (1일부터 9일)
                앞의 자리가 1또는 2일 경우 0~9 (10일부터 29일)
                앞의 자리가 3일 경우 0~1(30일, 31일)

'*Javascript*' 카테고리의 다른 글

[javascript] 이벤트  (0) 2021.12.21
[javascript] BOM / DOM  (0) 2021.12.21
[javascript] window 객체  (0) 2021.12.17
[javascript] 객체2 (object)  (0) 2021.12.16
[javascript] 객체1 (object)  (0) 2021.12.16