입력값 검증 규칙 점검
이메일, 슬러그, 사번, 주문번호처럼 형식 제약이 있는 값을 프론트엔드나 백엔드에 넣기 전에 빠르게 시뮬레이션할 수 있습니다.
브라우저 내부 처리
패턴과 플래그를 입력해서 매치 결과를 즉시 검증하세요.
이메일, 슬러그, 사번, 주문번호처럼 형식 제약이 있는 값을 프론트엔드나 백엔드에 넣기 전에 빠르게 시뮬레이션할 수 있습니다.
에러 로그나 API 응답에서 특정 토큰, UUID, 경로 조각만 뽑아내는 패턴을 만들 때 매치 결과를 눈으로 확인하기 좋습니다.
대량 치환이나 텍스트 정리 작업 전에 어떤 부분이 잡히는지 먼저 확인하면 실수로 과도하게 바뀌는 일을 줄일 수 있습니다.
g, i, m 플래그는 무엇이 다른가요?g는 전체 검색, i는 대소문자 무시, m은 여러 줄 기준 앵커 동작에 영향을 줍니다. 필요에 따라 조합해서 확인해야 합니다.
이스케이프 누락, 괄호 짝 불일치, 브라우저 자바스크립트 엔진이 지원하지 않는 문법 때문에 자주 발생합니다. 의심 구간을 작은 단위로 나눠 테스트하는 것이 빠릅니다.
브라우저의 JavaScript 정규식 엔진을 기준으로 동작합니다. PCRE나 특정 서버 런타임과는 차이가 있을 수 있으니 배포 환경에서도 한 번 더 확인하는 것이 좋습니다.
.*는 가능한 한 길게 잡으므로 첫둘에서 .*는 전체를 한 번에 잡습니다. 최소로 잡으려면 .*?를 씁니다. 태그나 인용부호를 다룰 때 결과가 이상하면 여기부터 봅니다.
자바스크립트, 파이썬, PCRE, POSIX가 룩비하인드나 유니코드 속성 지원에서 갈립니다. 여기서 되는 표현식이 서버 언어에서 그대로 동작하지 않을 수 있습니다. 옮길 때는 그 런타임에서 한 번 더 돌려보세요.
중첩된 수량자(예: (a+)+)는 백트래킹이 폭발해 짧은 입력에도 사실상 멈춥니다. 사용자 입력을 정규식으로 검증하는 코드에서는 이것이 서비스 거부로 이어집니다. 복잡한 패턴은 문자열 함수로 나눠 처리하는 편이 안전합니다.
.는 줄바꿈을 제외한 모든 문자입니다. 여기에 *가 붙으면 의도한 종료 지점을 지나쳐 끝까지 삼킵니다. .*? 로 바꾸거나 [^<]* 처럼 문자 집합을 좁히세요.
. + * ? ( ) [ ] { } | ^ $ \ 는 정규식 문법 문자입니다. 문자 그대로 찾으려면 앞에 백슬래시를 붙이세요. 예를 들어 소수점은 \. 입니다.
JavaScript에서 g 플래그가 붙은 정규식 객체는 lastIndex를 기억합니다. test나 exec를 반복 호출하면 이전 위치부터 검색합니다. 매번 새로 만들거나 lastIndex를 0으로 되돌리세요.
입력
패턴 (\d{4})-(\d{2})-(\d{2})
치환 $3/$2/$1
대상 2026-08-11
결과
11/08/2026
입력
대상 <b>one</b><b>two</b>
패턴A <b>.*</b>
패턴B <b>.*?</b>
결과
A <b>one</b><b>two</b> (전체를 한 번에)
B <b>one</b> (가장 짧게)
.*는 최대한 길게, .*?는 최대한 짧게 잡습니다. 태그나 인용부호를 다룰 때 결과가 갈리는 지점입니다.