Regex (정규표현식)
정보

Regex (정규표현식)

반응형

Regex (정규표현식)





Regex( Regular Expression, 정규 표현식 )은 문자열을 검사할 때 사용합니다.


문자열에 특정한 규칙에 맞는 문자열이 있는지 확인하는 표현식이라고 말할 수 있겠습니다.


보통 회원가입 시에 많이 쓰이는데요. 예를 들면, 아이디가 4글자 이상이어야 하거나 비밀번호가 영문+숫자 조합으로 만들어야 하는 조건이 있는 걸 한번씩은 보셨을겁니다.


이럴때 사용하는 것이 바로 Regex입니다.



해당 모델의 스키마에서 match 안에다가 작성하는데요. match: [/정규표현식/, "에러메시지"]와 같이 사용합니다. 만약 정규표현식에 맞지 않은 값이 들어온다면, 에러메시지가 출력되는 형식입니다.


1
2
3
4
5
6
7
8
9
10
11
name:{
  type:String,
  required:[true,"Name is required!"],
  match:[/^.{4,12}$/,"Should be 4-12 characters!"],
  trim:true
},
email:{
  type:String,
  match:[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,"Should be a vaild email address!"],
  trim:true
}
cs


User에 해당하는 스키마 중에, 이름과 이메일에 해당하는 부분입니다.


지금처럼 match부분에 Regex 정규표현식이 사용되고 있는 모습을 확인할 수 있습니다.





이름의 정규표현식에 해당하는/^.{4,12}$/에 대해서 한번 알아볼까요?


/^.{4,12}$/ : regex는 / / 안에 작성합니다.


/^.{4,12}$/ : ^는 문자열의 시작을 나타냅니다.


/^.{4,12}$/ : .는 어떠한 문자열이라도 상관없음을 나타냅니다.


/^.{4,12}$/ : {숫자1,숫자2}는 숫자1 이상, 숫자2 이하의 길이 나타냅니다. 즉 {4,12}는 4이상 12이하겠죠?


/^.{4,12}$/ : $는 문자열의 끝을 나타냅니다.


^과 $가 regex의 시작과 끝에 동시에 있으면 전체 문자열이 조건에 맞아야 성공입니다.


.{4,12}는 어떠한 문자라도 좋지만 4개 이상 12개 이하여야 한다는 뜻입니다.


즉, 전체 길이가 4자리 이상 12자리 이하 길이라면 어떠한 문자라도 Regex를 통과한다는 의미가 되겠습니다.



이처럼 이메일이나 아이디, 패스워드에도 표현식에 대한 조건을 입력할 수 있는 것이 Regex입니다.

반응형