지금 당장 호기심 문제를 해결하고 있습니다. 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));
}
나는 그때의 keyup 이벤트를보고 JQuery와 기능을 가지고, 그것은처럼 보이는 클래스 .phoneNumber
와 입력 텍스트를 입력해야 더 많은 통찰력을 제공하기 위해이 기능의 로그입니다 이
$('.phoneNumber').on('keyup', function() {
if (isPhoneNumberValid($(this).val())) {
console.log('is valid');
} else {
console.log('invalid');
}
});
다른 기능은 이미 살펴 보았습니다. String()
에도 값을 래핑했습니다.
온라인 환경에서 라이브 예제가 좋지 않은 이유를 설명하려고합니다. 이전에 언급 한 것처럼이 코드가 작동한다는 것을 알고 있기 때문입니다. 그 질문은 코펫에서 똑같은 사본이 작동하지만 내 프로젝트에서는 작동하지 않기 때문에 아마도 이런 방식으로 나아갈 수있는 것에 더 초점을 맞추고 있습니다.
/^\+\d{'min',12}$/.test(phoneNumber) min을 최소 문자열 길이가되도록 허용하려는 값으로 대체하십시오. –
정규 표현식이 정확히 12 자리 숫자와 일치합니다 @DeepakKumarTP ' s 해결책은 완전해야한다 !!! –
http://jsbin.com/gixicavase/1/edit?js,console - 문제를 재현 할 수 없습니다. – Quentin