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 상수는 괄호안에 ^ 표시가 있다.
이것은 부정표현으로 괄호내의 문자 이외의 문자를 뜻한다. 즉 허용되는 문자 이외의 문자를 뜻한다.
아마 실제 코딩테스트에서 정규식 표현을 사용해야 하는 상황이었다면 빼박 시간 초과였을 것이다.
ㅠㅠ 하지만 오늘 연습했으니 다음에는 더 빨라지겠지!