티스토리 뷰

SpringBoot

[HTML] 정규식 패턴

얀타호수 2023. 4. 13. 15:40

안녕하세요. 

 

오늘은 값을 입력받을 때의 정규식 패턴으로 유효성검사(validation)하는 방법을 알아보겠습니다.

프론트앤드쪽에서는 간단히 코드로 작성할 수 있지만 서버측에서도 검증이 필요한 작업임을 말씀드립니다.

 

우선 정규표현식에 대해 알아보겠습니다.

 

# 정규 표현식(Regular Expression: Regex)

정규 표현식이란 특정 패턴의 문자열을 찾기 위한 표현 방식입니다. 이런 것을 formal language라고 합니다.

이를 이용하면 특정 패턴에 매칭되는 문자열을 찾을 수 있습니다.

 

예를 들어 '010-1234-5678' 이라는 휴대폰 번호는

"숫자 3개", "-" , "숫자 4개" , "-" , "숫자 4개"로 이루어져있는데 이를 정규 패턴으로 만들어주면

특정 문자열이 해당 패턴에 맞는지 체크할 수 있습니다.

아래 코드에서 확인해보세요.

참고로 \d는 숫자를 의미합니다. {3}은 숫자의 갯수를 의미합니다.

const regex = /\d{3}-\d{4}-\d{4}/;


regex.test('010-1111-2222'); // T

regex.test('01011112222'); // F

 

문자열 속에서도 휴대폰 번호만 끄집어 낼 수 있습니다.

const str = "안녕하세요. 유진입니다. 제 번호는 010-1234-4567 입니다.";

str.match(/\d{3}-\d{4}-\d{4}); // 010-1234-4567

 

예시는 이렇게 보여드릴 수 있겠고 이제 정규 표현식의 기초를 정리해보겠습니다.

패턴 내용
a-zA-Z 영어 알파벳 (-로 범위를 지정)
ㄱ-ㅎ가-힣 한글 문자(-로 범위를 지정)
0-9 숫자(-로 범위를 지정)
. 모든 문자열(줄바꿈은 x)
\d 숫자
\D 숫자가 아닌 것
\w 영어 알파벳, 숫자, 언더스코어( _ )
\W \w 가 아닌 것
\s 스페이스 공백
\S 스페이스 공백이 아닌 것
\특수기호 특수기호

 

정규 표현식 검색 패턴

기호 의미
| or
[] 대괄호안의 문자들 중 하나
[^문자] 해당 문자를 제외한 것 
^문자 해당 문자열로 시작하는 것 (괄호 없음)
문자열$ 특정 문자열로 끝나는 것
() 그룹 검색 및 분류(match메서드에서 그룹별로 묶어줌)
(?: 패턴) 그룹 검색(분류 x)
\b 단어의 처음과 끝
\B 단어의 처음과 끝이 아님

등등 알아야할 게 많습니다...

 

 

필요한 것들만 간략하게 알아보자면

이메일 주소 정규표현식 입니다. 자주 사용해봐야 알 것 같습니다.

const str = "이메일 주소는 yoojin@yoo.co.kr 입니다만?"

str.match("/[\w\-\.]+\@[\w\-\.]+/g"); //yoojin@yoo.co.kr

 

 

 

감사합니다.