정규표현식

hyerin·2023년 3월 18일
0

regex

| 또는 (정규표현식에서는 귀찮아서 하나만 씀)
() 그룹, 그룹을 여러개 지정할 수 있음. 있으면 나오고 없으면 undefined
[] 문자셋, 괄호안의 어떠한 문자든 가능[a-zA-Z0-9]
[^] 부정문자셋, 괄호안의 어떤 문자가 아닐때
(?:) 찾지만 기억하지 않음. 그룹으로 저장하지 않음. ()사이에 ?: 를 적으면 됨.

? 없거나 있거나
* 없거나 있거나 많거나
+ 하나 또는 많이 있나
{n} n번 반복
{min,} 최소
{min, max} 최소, 그리고 최대

^문장의 시작 (단어 앞에다 붙임. 이 문자로 시작하는 문장에서 이 문자를 찾음)
$ 문장의 끝 (단어 끝에다 붙임. 이 문자로 시작하는 문장에서 이 문자를 찾음)

\ 특수문자인 경우 앞에 붙이는 것
. 모든 글자(줄바꿈 문자 제외)
\d 숫자(digit)
\D 숫자 아님
\w 문자(word)
\W 문자 아님
\s 공백(space)
\S 공백아님
\b 단어 경계 (문자 앞에다 붙임,이 문자로 시작하는 단어에서 이 문자를 찾음)
(문자 뒤에다 붙임,이 문자로 끝나는 단어에서 이 문자를 찾음)
\B 단어 경계가 아님 (정규 표현식에서 대문자는 소문자의 반대임)

플래그

/뒤에 붙이는 알파벳으로 대소문자 구분 않고 검사시 i, 모든 문자 검사시 g를 붙여준다. gi를 함께
쓰는 것도 가능하다.

정규표현식 메소드

  1. regex.test(string) : 인수로 전달받은 문자열에서 regex를 검사해 t/f로 반환한다.

  2. string.match(regex) : 매칭결과를 배열로 반환한다.

/^[0-9]*$/

영문자

/^[a-zA-Z]*$/

한글

/^[가-힣]*$/

전화번호 찾는 법 (연결문자는 ' ' 나 '-')

/\d{2,3}[- ]\d{3,4}[- ]\d{4}/

휴대전화 번호 찾는 법

/^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$/

주민등록번호 찾는 법

/^\d{6}\-[1-4]\d{6}$/

이메일 찾는 법

/^[a-zA-Z0-9+-%._]+\@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/
    aralrro     @   naver       .    com

아이디로 사용가능한지 검사(자리수 4~10 제한)

/^[0-9a-zA-Z]{4,10}$/

특수문자 사용했는지 검사하고, 제거하는 검사

const target = '1234asd%';
(/[^0-9a-zA-Z]/gi).test(target); //true
target.replace(/[^0-9a-zA-Z]/gi,'')
profile
글쓰기의 시작은 나를 위해, 끝은 읽는 당신을 위해

0개의 댓글