posts

regex

Oct 1, 2025 updated Oct 1, 2025 adminarchitectureexpojavascript

이 글은 예전에 따로 적어두었던 regex 메모를 옮기면서 다시 정리한 버전입니다.. 원문이 짧은 편이라, 나중에 다시 볼 때 덜 끊기게 핵심 흐름만 조금 붙여뒀습니다.

아래는 기존에 영문과 공백만 허용하던 정규식을 영문 + 공백 + 일부 특수문자를 허용하도록 확장한 예시입니다. 어떤 특수문자를 허용할지에 따라 정규식의 문자 클래스([]) 안에 포함시킬 기호를 자유롭게 추가·제거하시면 됩니다.

예시로, 다음 정규식은 영문 대소문자, 공백, 그리고 흔히 사용하는 특수문자(~ \ ! @ # $ % ^ & * ( ) _ - + = { } [ ] | \ : ; “ ’ < , > . ? /`)를 허용하도록 했습니다:

// 영문 + 공백 + 일반적인 특수문자 export const ENGLISH_REGEX = /^[A-Za-z\s~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/]+$/;

•	^[ ... ]+$: 문자열 전체가 괄호 안에 정의된 문자들로만 이루어져야 함.
•	A-Za-z: 영문 대소문자
•	\s: 공백(스페이스, 탭 등)
•	이어지는 특수문자들을 나열:
•	~ ` ! @ # $ % ^ & * ( ) _ - + = { } [ ] | \ : ; " ' < , > . ? /
•	필요에 따라 숫자(0-9)를 추가하거나, 특정 기호를 더 넣을 수도 있습니다.

주의:
	1.	JavaScript 정규식에서 \는 이스케이프 문자이므로, 실제로 \ 기호를 허용하려면 \\처럼 한 번 더 이스케이프해야 합니다.
2.	프로젝트 요구사항에 따라 허용할 특수문자 범위를 조정하세요. 예를 들어, 숫자를 허용하려면 [0-9]를 추가할 수 있습니다.
3.	“영문 정규식”이라도, “특수문자를 허용한다”는 것은 사실상 **“한글, 일본어, 숫자 등을 제외한 나머지 문자”**라는 의미이므로, 실제로 허용할 기호들을 명확히 정의해두는 것이 안전합니다.