사용자가 083,085,086,087,089로 시작하고 길이가 10 자리 여야하는 유효한 아일랜드 모바일을 추가했는지 확인하기 위해 양식의 유효성을 검사하려고합니다.
아일랜드 휴대 전화 번호 확인 을 확인 했지만 작동하지 않습니다.
마이 체크 기능
function CheckPhone(pNumb) {
var paswd=/08[3679]-\d{0,10}$/;
return paswd.test(pNumb);}
내가 검증하려고하는 곳
if(!CheckPhone(d))
{
alert("You have not entered a valid Irish mobile number");
document.getElementById('phoneNumber').focus();
return false;
}
그러나 유효한 번호가 있어도 항목이 유효하지 않다고 들었습니다. 나는 내가 뭔가 잘못했다고 확신하지만 나는 정규식에 익숙하지 않고 프로그래머가 아니므로 무엇을 확신하지 못합니다.
Jayce444에 대한 응답으로 checkphone 기능을 추가하면 이메일 및 비밀번호 기능이 무시되고 test @ test 및 test @ test와 같은 잘못된 값이있는 양식이 제출되므로 전체 스크립트를 포함하도록 질문을 편집했습니다. 암호는 p2
<script>
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
function CheckPassword(inputtxt) {
var paswd=/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,20}$/;
return paswd.test(inputtxt);
}
function CheckPhone(pNumb) {
var paswd=08[3679]-\d{7}$;
return paswd.test(pNumb);
}
function validateForm() {
var a=document.forms["subForm"]["firstName"].value;
if (a===null || a==="")
{
alert("All fields in the form are required You must enter your first name");
document.getElementById('firstName').focus();
return false;
}
var b=document.forms["subForm"]["lastName"].value;
if (b===null || b==="")
{
alert("All fields in the form are required You must enter your last name");
document.getElementById('lastName').focus();
return false;
}
var c=document.forms["subForm"]["email"].value;
if (c===null || c==="")
{
alert("All fields in the form are required You must enter your email address");
document.getElementById('email').focus();
return false;
}
if(validateEmail(c)===false)
{
alert("You must enter a valid email address");
document.getElementById('email').focus();
return false;
}
var d=document.forms["subForm"]["phoneNumber"].value;
if (d===null || d==="")
{
alert("All fields in the form are required You must enter your phone number");
document.getElementById('phoneNumber').focus();
return false;
}
if(CheckPhone(d)===false)
{
alert("You have not entered a valid Irish mobile number");
document.getElementById('phoneNumber').focus();
return false;
}
var e=document.forms["subForm"]["password"].value;
if (e===null || e==="")
{
alert("All fields in the form are required You must enter a password");
document.getElementById('password').focus();
return false;
}
if(CheckPassword(e)===false)
{
alert("You have not entered a valid password");
document.getElementById('password').focus();
return false;
}
}
</script>
이 정규식은 다음과 같이 작동합니다.
08[3679]-\d{7}$
Btw이 사이트 : https://regex101.com/ 은 정규식을 테스트하고 실제로 수행하는 작업을 확인하는 데 도움이됩니다. 두 번째 부분 \d{0,10}
은 "0 ~ 10 자리 일치"라고 말합니다. 원하는 것은 대시 뒤의 정확히 7 자리 숫자와 일치하는 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다