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

Javascript-使用正则表达式检查密码字段,javascript,html,regex,forms,Javascript,Html,Regex,Forms,我正在使用正则表达式检查密码字段,现在测试变量的javascript正在工作,但是当我尝试调用它并检查表单时,我似乎无法让javascript看到我希望它用我制作的javascript检查表单中的密码,但我似乎无法让表单与我制作的javascript通信,表单和javascript在同一页上,我想让它做的是,在检查了密码要求后,它会去提交表单。这是我到目前为止所拥有的 <html> <body> <script type="text/javascript"

我正在使用正则表达式检查密码字段,现在测试变量的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>

功能检查密码(密码)
{
密码=document.getElementById('thethePasswordField')。值;
var patt=/[a-z]/g;
var patt2=/[A-Z]/g;
var patt3=/[0-9]/g;
变量patt4=/[~\!@\$%\^&*\-\+=`\\\\\(\)\\\\\\\\[\]:;“,\.\?\/]/g;
var结果=参数测试(密码);
var result2=patt2.test(密码);
var result3=patt3.test(密码);
var result4=patt4.test(密码);
如果(!结果)
警告(“需要小写和大写字母、数字和特殊字符。”);
如果(!result2)
警告(“需要小写和大写字母、数字和特殊字符。”);
如果(!result3)
警告(“需要小写和大写字母、数字和特殊字符。”);
如果(!result4)
警告(“需要小写和大写字母、数字和特殊字符。”);
如果(结果和结果2和结果3和结果4)
警报(“”);
document.getElementById('frmApplication').submit();
}
密码:

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

尝试:


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

希望您能够清楚地看到,您的初始
getElementById
行必须引用“thePasswordField”ID值


我还没有检查您的代码的其余部分,但是将ID属性放在那里并尝试一下。

在第一个迹象中,您没有关闭所有块

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

这不是你第三次问这个问题了吗?你是通过ID“password”获取输入元素的,但是你的HTML中没有带有
ID=“password”
的元素。你为什么有
{
在submit调用之前?有几点建议:您不需要为函数声明
password
参数(因为您没有传递它)。将
元素的
id
属性设置为“password”,以便
document.getElementById(“password”)
实际检索某些内容。删除
{
.submit()之前
line.@bfavaretto不只是一个延续。我要求的是不同的东西,但它围绕着同一个代码。谢谢,刚刚关闭了块并重命名了密码id,但仍然没有结果。尽管如何验证密码页面没有多大帮助,因为java和JS没有那么相似。谢谢,我替换了line,并尝试了它仍然没有结果不确定我还缺少什么。
 function checkPassword(password)
    {
.....
   { document.getElementById('frmApplication').submit();
    }