"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript RegEx가 입력 유효성을 검사하지 못하는 이유는 무엇입니까?

JavaScript RegEx가 입력 유효성을 검사하지 못하는 이유는 무엇입니까?

2024-11-03에 게시됨
검색:712

Why is JavaScript RegEx Failing to Validate Inputs?

Javascript의 RegEx 기능과의 싸움: "Regex Not Working"의 사례 연구

제목에 참조된 쿼리의 맥락에서 "Javascript RegEx Not Working ," 정규식(regEx)이 입력 값에 관계없이 지속적으로 false를 반환하는 문제가 사용자에게 발생했습니다. 문의에 제공된 코드 조각은 다음과 같습니다.

function checkLegalYear() {
    var val = "02/2010"; 

    if (val != '') {
        var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");

        if (regEx.test(val)) {
            //do something
        }
        else {
            //do something
        }
    }
}

사용자가 RegEx를 사용하여 연도 입력의 유효성을 검사하려고 시도했지만 예상치 못한 결과가 발생했습니다. 여러 온라인 편집기에서 이 코드를 테스트했음에도 불구하고 RegEx는 계속 false를 반환했습니다.

문제 해결:

문제의 근본 원인은 생성하는 데 사용된 방법에 있습니다. RegEx 개체. 문자열에서 RegEx를 정의하는 경우 구문 분석 프로세스 중에 잘못된 해석을 방지하기 위해 백슬래시 문자를 두 배로 늘려야 합니다. 이 문제를 해결하려면 다음 코드를 사용해야 합니다.

var regEx = new RegExp("^(0[1-9]|1[0-2])//\\d{4}$", "g");

또는 RegEx 구문을 직접 사용하는 것이 좋습니다. 이렇게 하면 백슬래시를 두 배로 늘릴 필요가 없습니다.

var regEx = /^(0[1-9]|1[0-2])//\\d{4}$/g;

이러한 수정 사항을 구현함으로써 RegEx는 이제 의도한 대로 작동하여 연도 입력을 검증하고 정확한 정보를 제공해야 합니다. 결과.

릴리스 선언문 이 글은 1729229298에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3