JavaScript RegEx 테스트 실패: 문제 디코딩
JavaScript 영역에서 개발자는 수수께끼 같은 딜레마에 직면했습니다. 즉, 정규식 패턴이 일관되게 유지됩니다. 모든 입력에 대해 잘못된 결과가 나왔습니다. 온라인 편집자와 코드를 공유하자 놀랍게도 의도한 대로 작동했습니다. 자세히 조사해 보니 원인은 부적절한 백슬래시 처리였습니다.
원래 개발자는 정규식을 문자열로 정의했습니다.
<code class="javascript">var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");</code>
그러나 문자열에서 정규식을 구성할 때는 다음과 같습니다. 각 백슬래시 문자를 두 배로 늘리는 것이 중요합니다. 이는 파서가 문자열 리터럴을 해석하고 자체 백슬래시 규칙을 적용하여 의도한 패턴과 다른 수정된 표현식이 생성되기 때문입니다.
백슬래시 이중화를 생략하여 패턴은 다음과 같습니다.
^(0[1-9]|1[0-2])/d{4}$
대신 문자열 내에서 백슬래시를 두 배로 늘려야 합니다.
<code class="javascript">var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");</code>
이렇게 수정하면 파서가 패턴을 올바르게 해석하여 원하는 월 및 연도 형식을 인식할 수 있습니다.
또한 정규식 구문을 직접 사용하는 것도 고려해 볼 가치가 있습니다.
<code class="javascript">var regEx = /^(0[1-9]|1[0-2])\/\d{4}$/g;</code>
이렇게 하면 문자열 보간이 필요 없으며 패턴 표현을 위한 보다 직관적인 구문을 제공합니다.
위 내용은 JavaScript RegEx 테스트가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!