为数字创建一个必须以3个字母为前缀的模式,例如(IKA111111)

时间:2018-03-16 14:43:13

标签: javascript html validation

function validatetest(e)
    {
    debugger;
        e.preventDefault();
        // Declare all the variables here
        var firstName = document.getElementById("firstName").value;
        var lastName =  document.getElementById("lastName").value;
        var title = document.getElementById("title").value;
        var healthNumber = document.getElementById("healthNumber").value);
        var email = document.getElementById("email").value;
        var telephoneNumber = parseInt(document.getElementById("telephoneNumber").value);
        var validHealth = /^[A-Z]{3}[0-9]{6}$/;
        var validText = /^[a-zA-Z]*$/;
        var validLastText = /^[a-zA-Z-]*$/;
        var validEmail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,6}$/;
        //var n = healthNumber.startsWith("ZHA");

        if(firstName!="" && lastName!= "" && title!="" && email !="")
        {
            if(email.match(validEmail))
            {   

                if(!isNaN(telephoneNumber) && telephoneNumber >= 11111111111 && telephoneNumber <= 99999999999)
                    { 
                        if(firstName.match(validText) && firstName.length >1)
                        {
                            if(lastName.match(validLastText) && lastName.length> 1)
                            {
                                if(healthNumber.match(validHealth))
                                {
                                    alert("All information is Validated");
                                    return true;

                                }
                                else
                                {
                                        alert("error error");
                                        return false;
                                }

                            }
                            else
                            {
                                document.getElementById("error4").innerHTML="letters and hypen only";
                                return false;
                            }



                        }
                        else
                        {
                            document.getElementById("error").innerHTML="letters only and more then one character";
                            return false;
                        }
                     }
                     else 
                     {
                         document.getElementById("error2").innerHTML="Telephone number must be 11 num digits long";

                     }
            }
            else
            {
                document.getElementById("error3").innerHTML="email is not a valid format ";
                return false;
            }
        }

        else
        {
            alert("All fields must be entered except telephone Number ");
            return false;
        }
     }

我正在尝试通过使用用户输入的健康编号的模式来创建验证过程,以便它验证是否输入了3个字母,然后通过用户输入输入6个数字。 (MIC123456是示例,因此必须输入MIC,这些特定字母) 通过使用存储在ValidHeath变量中的模式,不确定我的技术是否正确,因为您可以将此想法用于我的电子邮件验证等。

1 个答案:

答案 0 :(得分:2)

你的正则表达式中有一个额外的+,使其成为

var validHealth = /^[A-Z]{3}[0-9]{6}$/;

<强>演示

var isMatch = !!"IKA111111".match(/^[A-Z]{3}[0-9]{6}$/);

isMatch ? console.log( "Matching" ) : console.log( "Not Matching" );