Javascript

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

SeanK 2022. 3. 15. 21:57

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

 

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

 

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

 

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