2017-12-28 27 views
-2

지금 당장 호기심 문제를 해결하고 있습니다. regexp를 사용하여 문자열을 테스트 중이며 true를 반환해야하지만 false가 반환됩니다. 나는 자바 스크립트로 구현하고있다. I이 함수JavaScript RegExp 테스트가 잘못된 값을 반환합니다.

function isPhoneNumberValid(phoneNumber) { 
    return /^\+\d{12}$/.test(phoneNumber); 
} 

phoneNumber (예 : 421,123,123,123) 후에, 12 개 + 숫자 형식의 변수가있다. 난 /^\+[0-9]{12}$/ 같은 regexp의 다른 버전으로 놀았어요.

https://www.regextester.com/21과 같은 사이트에 따르면 내 regexp는 내가 원하는 형식으로 작동해야하지만 여전히 false를 반환합니다. 이 정규 표현식을 테스트 해보았을 때 /^\+[0-9]/+3이 쓰여졌을 때 true를 반환했습니다. 문제는 숫자와 같습니까?

매개 변수 phoneNumber은 올바른 기능이므로 잘못된 것이 없다고 생각합니다. 또한 수정 자의 조합이 도움이되지 않았습니다. 여기

function isPhoneNumberValid(phoneNumber) { 
    console.log('ph:'+phoneNumber); 
    console.log(/^\+\d{12}$/.test(phoneNumber)); 
} 

enter image description here

나는 그때의 keyup 이벤트를보고 JQuery와 기능을 가지고, 그것은처럼 보이는 클래스 .phoneNumber와 입력 텍스트를 입력해야 더 많은 통찰력을 제공하기 위해이 기능의 로그입니다 이

$('.phoneNumber').on('keyup', function() { 
    if (isPhoneNumberValid($(this).val())) { 
     console.log('is valid'); 
    } else { 
     console.log('invalid'); 
    } 
}); 

다른 기능은 이미 살펴 보았습니다. String()에도 값을 래핑했습니다.

온라인 환경에서 라이브 예제가 좋지 않은 이유를 설명하려고합니다. 이전에 언급 한 것처럼이 코드가 작동한다는 것을 알고 있기 때문입니다. 그 질문은 코펫에서 똑같은 사본이 작동하지만 내 프로젝트에서는 작동하지 않기 때문에 아마도 이런 방식으로 나아갈 수있는 것에 더 초점을 맞추고 있습니다.

+0

/^\+\d{'min',12}$/.test(phoneNumber) min을 최소 문자열 길이가되도록 허용하려는 값으로 대체하십시오. –

+0

정규 표현식이 정확히 12 자리 숫자와 일치합니다 @DeepakKumarTP ' s 해결책은 완전해야한다 !!! –

+1

http://jsbin.com/gixicavase/1/edit?js,console - 문제를 재현 할 수 없습니다. – Quentin

답변

0

문제는 latte 템플릿 엔진에서 발생했습니다.

<script n:syntax="double"></script> 

이 필요했습니다.