JavaScript RegEx 테스트 실패: 문제 디코딩
JavaScript 영역에서 개발자는 당황스러운 딜레마에 직면했습니다. 즉, 정규식 패턴이 일관되게 유지됩니다. 모든 입력에 대해 잘못된 결과가 나왔습니다. 온라인 편집자와 코드를 공유하자 놀랍게도 의도한 대로 작동했습니다. 자세히 조사한 결과 원인은 부적절한 백슬래시 처리였습니다.
원래 개발자는 정규식을 문자열로 정의했습니다.
var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");
그러나 문자열에서 정규식을 구성하는 경우 각 백슬래시 문자를 두 배로 늘리는 것이 중요합니다. 이는 파서가 문자열 리터럴을 해석하고 자체 백슬래시 규칙을 적용하여 의도한 패턴과 다른 수정된 표현식이 생성되기 때문입니다.
백슬래시 이중화를 생략하면 패턴이 다음과 같이 됩니다.
^(0[1-9]|1[0-2])/d{4}$
대신 문자열 내에서 백슬래시를 두 배로 늘려야 합니다.
var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");
이 수정은 파서가 다음을 해석하도록 보장합니다. 패턴을 올바르게 인식하여 원하는 월 및 연도 형식을 인식할 수 있습니다.
게다가 정규식 구문을 직접 사용하는 것도 고려해 볼 가치가 있습니다.
var regEx = /^(0[1-9]|1[0-2])\/\d{4}$/g;
이렇게 하면 문자열 보간이 필요하지 않으며 패턴 표현을 위한 보다 직관적인 구문을 제공합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3