Javascript - 使用正则表达式检查密码字段

时间:2012-09-28 19:44:41

标签: javascript html regex forms

我正在使用正则表达式检查密码字段,现在测试varible的javascript正在运行,但是当我尝试调用它并检查表单时,我似乎无法获取javascript来查看我希望它使用我制作的javascript检查表单中的密码,但我似乎无法使用我制作的javascript通信表单,表单和javascript在同一页面上,我想要它做什么在它检查密码要求之后,它会去提交表格。这是我到目前为止所拥有的。

<html>
 <body>
    <script type="text/javascript">
     function checkPassword(password)
    {
    password = document.getElementById('thethePasswordFieldField').value;   
        var patt=/[a-z]/g;
        var patt2 = /[A-Z]/g; 
        var patt3 = /[0-9]/g; 
        var patt4 = /[~\!@#\$%\^&*_\-\+=`\|\\(\)\{\}\[\]:;"'<>,\.\?\/]/g; 

            var result=patt.test(password);
            var result2=patt2.test(password);
            var result3=patt3.test(password);
            var result4=patt4.test(password);

                if (!result)
            alert("Needs a lowercase & uppercase letter, a number & a special character.");

                if (!result2)
            alert("Needs a lowercase & uppercase letter, a number & a special character.");

                if (!result3)
            alert("Needs a lowercase & uppercase letter, a number & a special character.");

                if (!result4)
            alert("Needs a lowercase & uppercase letter, a number & a special character.");

                        if (result && result2 && result3 && result4)
            alert("");
            document.getElementById('frmApplication').submit();
    }
    </script>

    <form id="frmApplication" name="frmApplication" action="test.html" method="post">
    Password: <input type="text" name="thethePasswordFieldField" id="thethePasswordFieldField">  
   <a href="javascript:checkPassword()">Submit</a>
   </form>
    </body>
    </html>

2 个答案:

答案 0 :(得分:2)

您正在使用getElementById,但实际上没有为“密码”字段分配ID属性。

尝试:

<input type="password" name="thePasswordField" id="thePasswordField"/>

我建议使用此约定的原因是避免使用“password”作为您的实际字段名称(如果您使用此方法,IE可能会死),当然,实际上也使用password类型字段。

希望你明白你的初始getElementById行必须引用“thePasswordField”ID值。

我没有审查你的其余代码,但是将ID属性放在那里并给它一个镜头。

答案 1 :(得分:1)

在第一个标志处你没有关闭所有街区

 function checkPassword(password)
    {
.....
   { document.getElementById('frmApplication').submit();
    }

请参阅此处有关regexp how-to-validate-password-with-regular-expression

的信息