JavaScript

front-end 국비과정 일차 19일차 학습일지:정규 표현식

헐크97 2022. 4. 22. 19:04

  --- 정규 표현식 ---
  
정규표현식이란?
  문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 검색하거나 바꾸는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단이다.
  
플레그(flag)란?
  작성한 정규표현식에 기능을 부여해주는 역할을 한다.
  
정규표현식의 사용방법은 2가지가있다
  
  1 생성자 함수에 사용하는 방식
  생성자 함수에 정규표현식을 담아서 사용하는 방식이다
    
  2 리터럴 방식 
  정규 표현식을 /로 감싸 사용하는 방식이다 
ex)

const test1 = new RegExp("^hello")
  //생성자 함수로 정규표현식을 작성한 예시
const test2 = new RegExp("^hello","gi") 여기서 RegExp는 전역객체로써 정규표현식을 생성하는 기능을한다.
  // 1번파라미터 = 표현식 2번파라미터 = 플래그
console.log(test1)
console.log(test2)

const test3 = /^hello/
//리터럴 방식으로 정규표현식을 작성한 예시 /로 표현식을 감싼다.
const test4 = /^hello/gi 
//리터럴 방식으로 표현식과 플래그를 작성한 예시
console.log(test3)
console.log(test4)



--- 정규식에서 사용되는 method ---
  test():정규식과 문자열이 일치하는지 true, false로 반환한다.
    사용법 :정규식.test(일치여부를 판단할 문자열)

  match(): ()안에 명시한 정규식과 일치하는 문자열을 배열로 반환한다.
    사용법 : 문자열.match(정규식) 

  replace():()안에 명시한 정규식과 일치하는 문자를 수정한다.
    사용법 : 문자열.replace(정규식,수정할 문자)
  
ex)

const myInfo = `
phone:010-0000-0000
email:blacksoy0516@gmail.com
address:Incheon
age:26
`

const Test = /010/gi 
//Test라는 변수안에 010이라는 정규식 생성
console.log(Test.test(myInfo))
//Test는 정규식이고 test라는 method를 사용하여 myInfo라는 문자열중에 010이 있는지 조회

const Test2 = /blacksoy/
//Test2라는 변수안에 blacksoy라는 정규식 생성
console.log(myInfo.match(Test2))
//Test2는 정규식이고 match라는 method를 사용하여 myInfo라는 문자열에 blacksoy가 있는지 조회후 배열로 반환 

const Test3 = /Incheon/
//Test3라는 변수안에 Incheon이라는 정규식 생성
console.log(myInfo.replace(Test3,"Seoul"))
//Test3는 정규식이고 replace라는 method를 사용하여 myInfo라는 문자열에 Incheon이 있는지 조회
//1번파라미터에는 myInfo에 내용을 조회할 정규식 Test3를 넣어주고, 2번파라미터에는 수정할 문자 명시


 
--- 정규식에서 사용되는 플래그(flag) ---

g : global의 약어로 모든문자를 일치시킨다 
g플래그가없다면 문자열 데이터안에서 찾고자하는 문자열을 최초로 발견하는 시점에서 반환한다 
g플래그가 있다면 문자열 데이터안에서 찾고자하는 문자열을 전부 배열로 반환한다

i : ignore의 약어로 알파벳의 대소문자를 구분하지 않는다 즉 ABC와 abc를 같다고 인식한다

m : 여러 줄을 일치시킨다 
출력되는 내용을 보기좋게 줄바꿈해주는 역할을한다 

ex)

const myInfo = `
phone:010-0000-0000
email:blacksoy0516@gmail.com
address:Incheon
age:26
`

const Test = /010/gi 
//Test라는 변수안에 010이라는 정규식 생성 여기서 gi는 g와i플래그를 사용했다는 의미
console.log(Test.test(myInfo))
//Test는 정규식이고 test라는 method를 사용하여 myInfo라는 문자열중에 010이 있는지 조회

const Test2 = /blacksoy/gim
//Test2라는 변수안에 blacksoy라는 정규식 생성
console.log(myInfo.match(Test2))
//Test2는 정규식이고 match라는 method를 사용하여 myInfo라는 문자열에 blacksoy가 있는지 조회후 배열로 반환
//gim은 g,i,m플래그를 사용하겠다는의미