본문 바로가기
Javascript

[JS] 특수문자를 거르는 정규식 표현

by SeanK 2022. 3. 15.

 

오늘 프로그래머스 코딩 테스트 연습문제를 풀면서 정규식을 사용해야 하는 문제가 있었다. 

 

하... 정규식 너란 녀석... 어떻게 돌아서면 까먹는지... ㅋㅋㅋ

 

하지만 포기하지 말자. 언젠가는 외워지겠지...

 

일단 오늘 문제에서는 소문자 영어와 숫자 그리고 . - _ 이렇게 세 가지 문자를 제외한 모든 문자는 제외시켜야 하는 코드를 필요로 했다. 

 

따라서 몇분간의 삽질 결과... 아래와 같은 정규식 표현을 만들었다. 

 

const allowedCharacters = /^[a-z0-9._-]/g;
const notAllowedCharacters = /[^-_.a-z0-9]/g;
const capitalLetters = /^[A-Z]/g

우선 [] 괄호 밖에 있는 ^ 이 문자의 뜻은 해당 괄호 안의 문자로 시작한다는 의미를 가진다.

 

따라서 allowedCharacters 상수는 소문자영어 숫자 그리고. _ - 이렇게 세 가지 특수문자를 뜻한다. 

 

반면 notAllowedCharacters 상수는 괄호안에 ^ 표시가 있다. 

 

이것은 부정표현으로 괄호내의 문자 이외의 문자를 뜻한다. 즉 허용되는 문자 이외의 문자를 뜻한다. 

 

아마 실제 코딩테스트에서 정규식 표현을 사용해야 하는 상황이었다면 빼박 시간 초과였을 것이다. 

 

ㅠㅠ 하지만 오늘 연습했으니 다음에는 더 빨라지겠지!