JavaScript爱尔兰移动正则表达式

JavaScript爱尔兰移动正则表达式,javascript,validation,Javascript,Validation,我正在尝试验证一个表单,以检查用户是否添加了一个有效的爱尔兰手机,该手机应该以083085086087089开头,长度为10位 我看了看,但没法用 我的支票功能 function CheckPhone(pNumb) { var paswd=/08[3679]-\d{0,10}$/; return paswd.test(pNumb);} 我尝试验证的地方 if(!CheckPhone(d)) { alert("You have no

我正在尝试验证一个表单,以检查用户是否添加了一个有效的爱尔兰手机,该手机应该以083085086087089开头,长度为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;    
        }
但即使有一个有效的数字,我也被告知条目是无效的。我肯定我做错了什么,但我对regex是新手,不是程序员,所以不确定是什么

作为对Jayce444的回应,我编辑了我的问题,以包含完整的脚本,因为当我添加checkphone功能时,它会导致忽略电子邮件和密码功能,并且提交表单时,这些字段的值无效,例如test@testp2作为密码

<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>

功能验证电子邮件(电子邮件){
变量re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\'+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.];
返回重新测试(电子邮件);
}
函数检查密码(inputxt){
var paswd=/^(?=.*\d)(?=.[a-z])(?=.[a-z])。{8,20}$/;
返回paswd.test(输入文本);
}
功能检查电话(pNumb){
var paswd=08[3679]-\d{7}$;
返回功率测试(pNumb);
}
函数validateForm(){
var a=document.forms[“subForm”][“firstName”].value;
如果(a==null | | a===“”)
{
警报(“表格中的所有字段都是必填字段,您必须输入您的名字”);
document.getElementById('firstName').focus();
返回false;
}
var b=document.forms[“subForm”][“lastName”].value;
如果(b==null | | b===“”)
{
警告(“表格中的所有字段都是必填字段,您必须输入您的姓氏”);
document.getElementById('lastName').focus();
返回false;
}
var c=document.forms[“subForm”][“email”].value;
如果(c==null | | c===“”)
{
警报(“表格中的所有字段都是必填字段,您必须输入您的电子邮件地址”);
document.getElementById('email').focus();
返回false;
}
if(validateEmail(c)==false)
{
警报(“您必须输入有效的电子邮件地址”);
document.getElementById('email').focus();
返回false;
}
var d=document.forms[“subForm”][“phoneNumber”]。值;
如果(d==null | | d===“”)
{
警报(“表格中的所有字段都是必填字段,您必须输入您的电话号码”);
document.getElementById('phoneNumber').focus();
返回false;
}
如果(检查电话(d)==false)
{
警报(“您没有输入有效的爱尔兰手机号码”);
document.getElementById('phoneNumber').focus();
返回false;
} 
var e=document.forms[“subForm”][“password”].value;
如果(e==null | | e===“”)
{
警报(“表格中的所有字段都是必填字段,您必须输入密码”);
document.getElementById('password').focus();
返回false;
}    
如果(检查密码(e)==false)
{
警报(“您未输入有效密码”);
document.getElementById('password').focus();
返回false;
}
}
此正则表达式适用于:

08[3679]-\d{7}$
顺便说一句,这个网站有助于测试正则表达式,并了解它们实际在做什么。你的第二部分,
\d{0,10}
说“匹配0到10个数字”。您需要的是精确匹配破折号后的7位数字。

此正则表达式适用于:

08[3679]-\d{7}$

顺便说一句,这个网站有助于测试正则表达式,并了解它们实际在做什么。你的第二部分,
\d{0,10}
说“匹配0到10个数字”。您需要的是在破折号后精确匹配7位数字。

谢谢,但这破坏了我的验证,因为它显示检查电子邮件和密码功能失败。失败脚本的完整代码。我将尝试编辑我的问题,因为我无法在评论中发布代码。那么你是说,现在电话号码验证工作正常,但电子邮件和密码验证工作不正常?因为这是一个单独的问题,如果regex和check代码都到位,密码和电子邮件的验证就会失败。我还没有测试过手机的regex和check代码,但稍后会进行测试,并会确认它是否正常工作,并在表单验证未运行的情况下解决问题+1对于链接,这将是非常有用的谢谢,但这打破了我的验证,与它目前的检查电子邮件和密码功能失败。失败脚本的完整代码。我将尝试编辑我的问题,因为我无法在评论中发布代码。那么你是说,现在电话号码验证工作正常,但电子邮件和密码验证工作不正常?因为这是一个单独的问题,如果regex和check代码都到位,密码和电子邮件的验证就会失败。我还没有测试过手机的regex和check代码,但稍后会进行测试,并会确认它是否正常工作,并在表单验证未运行的情况下解决问题+1对于链接,它将非常有用