Backend/JavaScript

정규표현식(Regex)

쏠솔랄라 2023. 5. 18. 13:53

 

 

정규표현식(Regex)

: 특정 규칙을 지니고 있는 문자열의 집함을 표현하는 데 사용하는 식

 

 

전화번호, 이메일, 아이디, 비밀번호 등의 형식을 체크하기 위한 용도로 주로 사용

정규화된 문자열을 만들기 위한 다양한 표현식을 사용하게 된다

 

https://regexper.com/

 

Regexper

 

regexper.com

 

 

. : 모든 문자와 일치시킨다

^ : 정규표현식의 시작

$ : 정규 표현식의 끝

? : ? 왼쪽의 표현식으로 끝나는 문자열이 0 또는 1번을 사용하는 경우 일치

* : 왼쪽의 표현식으로 끝나는 문자열이 0번 이상 반복하는 경우 일치

+ : 왼쪽 표현식으로 끝나는 문자열이 1번 이상 반복하는 경우 일치

| : 왼쪽 또는 오른쪽 표현식과 일치시킴

[0-9] : 0~9 범위의 문자와 일치시킴

[a-z] : a~z 범위의 문자와 일치시킴

[A-Z] : A~Z 범위의 문자와 일치시킴

 

{n} : 왼쪽 표현식으로 끝나는 문자열이 n번 사용하는 경우 일치시킴

{n, m} : 왼쪽 표현식으로 끝나는 문자열이 n~m번 사용하는 경우 일치시킴

( ) : 괄호 안의 표현식을 그룹으로 묶어 저장

\d : [0-9] 표현식에 일치시킴

\D : [0-9] 표현식을 제외하고 일치시킴

\w : [a-zA-Z0-9_] 표현식에 일치시킴

\W : [a-zA-Z0-9_] 표현식에 일치시킴

 

 

** 자바 API에서는 java.util.regex.Pattern에 상세한 설명이 있음

https://docs.oracle.com/javase/8/docs/api/

 

 


 

 

정규표현식의 사용

 

 

항상 정규식 체크를 해 주어야 한다

[ ] 대괄호 안에 포함시킬 항목을 넣는다

 

* JavaScript외 모든 언어에서 사용 가능

 

 

ex.

[abc]

: a 또는 b 또는 c가 온다

 

 

[a-zA-Z!@#$%^&*][a-zA-Z!@#$%^&*][a-zA-Z!@#$%^&*][a-zA-Z!@#$%^&*][a-zA-Z!@#$%^&*]

: 다섯자리의 [a-zA-Z!@#$%^&*]

 

 

== 

[a-zA-Z!@#$%^&*]{5}

: [a-zA-Z!@#$%^&*]를 다섯 번 반복

 

 

[a-zA-Z!@#$%^&*]{3,}

: [a-zA-Z!@#$%^&*]가 3번 이상

 

 

[a-zA-Z!@#$%^&*]{3,10}

: [a-zA-Z!@#$%^&*]가 3번 이상 10번 이하

 

 

\d{2}([0]\d|[1][0-2])([0][1-9][1-2]\d|[3][0-1])[-]*[1-4]\d{6}

: 주민등록번호를 입력 받는 정규표현식

 

 

[1-9][0-9]{0,2}

: 1-9사이의 수 하나와 0-9사이의 수 1개 또는2개가 온다

 

->
var num_pattern = /^[1-9][0-9]{0,2}$/;

 

->

값이 나오면 true 아니면 false

 

->

if(!num_pattern.test(age)){
alert("나이는 정수로 입력하세요");
f.age.focus();
return;

// 오류처리

 

 

출력화면