JS 정규 표현식

lynn·2022년 6월 6일
0

JavaScript

목록 보기
9/21

정규표현식(Regular Expression)

특정 패턴의 문자열을 찾기 위한 표현 방식

기본 사용법

슬래시 안에 표현식을 넣는다 (예: /ab+c/ )

예시)

const text="안녕하세요 010-1234-5678 로 전화주세요"

/안/ : '안' 문자열을 하나만 찾기
/안/g : '안' 문자열을 모두 찾기
/[안4]/g : '안'또는 '4' 문자열을 모두 찾기

/[0-9]/g : 0과 9사이의 숫자 모두 찾기
(결과: [ '0', '1', '0', '1', '2', '3', '4', '5', '6', '7', '8' ])
/[^0-9]/g : 0과 9사이의 숫자가 아닌 것 모두 찾기

/[a-zA-Z]/g : 영어 알파벳 소문자,대문자를 모두 찾기

정리

-를 사용해서 범위 지정 가능

a-zA-Z : 영어 대소문자
0-9 : 숫자
. : 모든 문자열
\d : 숫자
\D : 숫자가 아닌 것
\w : 영어 알파벳, 숫자, 언더바(_)
\W :\w가 아닌 것
\s : 공백
\S : 공백이 아닌 것

| : OR
[] : 대괄호 안에 있는 문자열 중 하나
[^문자열] : 대괄호 안에 있는 문자열을 제외한 것
^문자열 : 해당 문자열로 시작하는 것
문자열$ : 해당 문자열로 끝나는 것

*없거나 있거나
+: 최소 한개
?: 최대 한번
{n} n개
{min,} min개 이상
{min,max} min개 이상, max개 이하

g : 모두 찾기(global) ex: //g
i : 대소문자 구분 안함(ignore case)
m : 여러 행 문자열 검색(multi line)

JS에서 제공하는 메소드로 체크

  • test: 문자열이 정규표현식 기준을 만족하는지 체크
const regex = /\d{3}-\d{4}-\d{4}/
regex.test('010-3333-333') //false
regex.test('010-1234-5678') //true
  • match: 문자열 안에 특정 패턴이 있는 문자열 찾아내기
const text="안녕하세요 010-1234-5678 로 전화주세요"
const result=text.match(/\d{3}-\d{4}-\d{4}/)

result //[ '010-1234-5678', index: 6, input: '안녕하세요 010-1234-5678 로 전화주세요', groups: undefined ]

result[0] //'010-1234-5678'
result.index //6
profile
개발 공부한 걸 올립니다

0개의 댓글