#TIL23 (2)

전혜린·2021년 8월 17일
0

Today I Learned

목록 보기
38/64

정규표현식

  • 정규식, Regular Expression
  • 정규표현식이란 문자열을 검색하고 대체하는 데 사용 가능한 일종의 형식 언어(패턴)
  • 간단한 문자 검색부터 이메일, 패스워드 검사 등의 복잡한 문자 일치 기능 등을 정규식 패턴으로 빠르게 수행할 수 있음

정규표현식 역할

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

정규식 생성

  • 정규 표현식을 줄여서 '정규식'이라고 부름

1. 생성자 함수 방식

  • 생성자 함수를 호출하여 사용할 수 있음
  • 생성자 방식은 new라는 키워드와 함께 자바스크립트 전체의 영역에서 사용할 수 있는 RegExp 객체를 사용
  • 첫 번째 인수는 특정한 표현의 패턴을 적음
  • 두 번째 인수는 그 패턴을 어떠한 방식으로 검색할 것인지 기본적인 옵션을 추가

new RegExp('표현', '옵션')
new RegExp('[a-z]', 'gi')

2. 리터럴(Literal) 방식

  • /로 감싸진 패턴을 리터럴로 사용
  • 따옴표 없이 표현부분 양옆에 슬래시기호를 붙여서 작성하고 옵션부분은슬래시기호 뒤쪽에 명시
  • 보통의 경우에는 리터럴 방식이 훨씬 편리하나 상황에 따라 생성자 함수를 써야만 하는 경우도 있음

/표현/옵션
/[a-z]/gi


<예시>

  • 코드상에서 줄바꿈 처리를 하고 싶다면 배틱 기호를 사용하여 문자데이터 만들기

1. 생성자함수를 통한 정규표현식 생성

  • RegExp라는 자바스크립트 전역객체 생성 후 두개의 인수 추가

  • 기본적으로 제일 처음에 찾아진 'the'라는 단어만 배열로 만들어줌
    const regexp = new RegExp('the', '')
    console.log(str.match(regexp)) //0: "the"

  • g플래그 사용(대소문자 구분)
    const regexp = new RegExp('the', 'g')
    console.log(str.match(regexp)) //(2) ["the", "the"]

  • gi플래그 사용(대소문자 구분 안함)
    const regexp = new RegExp('the', 'gi')
    console.log(str.match(regexp)) //(3) ["the", "The", "the"]

 
2. 리터럴방식으로 정규표현식 생성
const regexp = /the/gi
console.log(str.match(regexp)) //(3) ["the", "The", "the"]

profile
코딩쪼아

0개의 댓글