>  기사  >  웹 프론트엔드  >  JavaScript RegEx 테스트가 실패하는 이유는 무엇입니까?

JavaScript RegEx 테스트가 실패하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-18 13:27:02428검색

Why Does JavaScript RegEx Testing Fail?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.