Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式测试新密码_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式测试新密码

Javascript 正则表达式测试新密码,javascript,regex,Javascript,Regex,您好,我正在开发一个javascript,它应该测试密码字段。然而,我似乎无法让它发挥作用。页面加载时没有发生什么不好的事情,但脚本似乎不起作用。这是我到目前为止写的东西。我希望它检查大小写字母、数字和非正则表达式。长度并不重要,重要的是它每一个都有一个。这是我到目前为止写的东西 UPDDATE:找到了一种更简单的脚本编写方法。我可以让它在密码字段出错时向我发出警报。但我无法让真实的语句在文档按钮单击时起作用。 var str= passwordFieldForm; var patt=/

您好,我正在开发一个javascript,它应该测试密码字段。然而,我似乎无法让它发挥作用。页面加载时没有发生什么不好的事情,但脚本似乎不起作用。这是我到目前为止写的东西。我希望它检查大小写字母、数字和非正则表达式。长度并不重要,重要的是它每一个都有一个。这是我到目前为止写的东西

UPDDATE:找到了一种更简单的脚本编写方法。我可以让它在密码字段出错时向我发出警报。但我无法让真实的语句在文档按钮单击时起作用。

var str= passwordFieldForm;
    var patt=/[a-z]/g;
    var patt2 = /[A-Z]/g; 
    var patt3 = /[0-9]/g; 
    var patt4 = /[~\!@#\$%\^&*_\-\+=`\|\\(\)\{\}\[\]:;"'<>,\.\?\/]/g; 

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

    if (!result)
      alert("Needs a lowercase letter");

    if (!result2)
      alert("Needs a Uppercase Letter")

    if (!result3)
      alert("Needs a Number.")

    if (!result4)
      alert("Needs a special character")


    if (result) && (result2) && (result3) && (result4) == true
      document.getElementById("kioskform:broswerPasswordSubmit").click();
var str=passwordFieldForm;
var patt=/[a-z]/g;
var patt2=/[A-Z]/g;
var patt3=/[0-9]/g;
变量patt4=/[~\!@\$%\^&*\-\+=`\\\\\(\)\\\\\\\\[\]:;“,\.\?\/]/g;
var结果=部分试验(str);
var result2=patt2.检验(str);
var result3=第3部分测试(str);
var result4=第4部分测试(str);
如果(!结果)
警告(“需要小写字母”);
如果(!result2)
警告(“需要大写字母”)
如果(!result3)
警报(“需要一个号码”)
如果(!result4)
警报(“需要特殊字符”)
如果(结果)和(结果2)和(结果3)和(结果4)=真
document.getElementById(“kioskform:broswerPasswordSubmit”)。单击();
这条线路有故障:

return ("you need to use a one of the following characters '~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/'.")
return(“您需要使用以下字符之一”~!@$%^&*.-+=``\\(){}[]:;“,.?/”)
你需要转义引号和斜杠

return ("you need to use a one of the following characters '~!@#$%^&*_-+=`|\\(){}[]:;\"'<>,.?/'.")
return(“您需要使用以下字符之一”~!@$%^&*.-+=``\\\(){}[]:;\“,.?/”)
您还可以使用
==
而不是
=
进行比较,
true
而不是
“true”
。并且习惯于总是使用{}作为if语句的内容,而不是依赖制表符。

这一行有问题:

return ("you need to use a one of the following characters '~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/'.")
return(“您需要使用以下字符之一”~!@$%^&*.-+=``\\(){}[]:;“,.?/”)
你需要转义引号和斜杠

return ("you need to use a one of the following characters '~!@#$%^&*_-+=`|\\(){}[]:;\"'<>,.?/'.")
return(“您需要使用以下字符之一”~!@$%^&*.-+=``\\\(){}[]:;\“,.?/”)

此外,您还可以使用
=
而不是
=
进行比较,
true
而不是
“true”
。并且习惯于总是使用{}作为if语句的内容,而不是依赖制表符。

您需要在上一次正则表达式测试中转义其中的几个字符:

 var patt4 = /[~!@#$%\^&\*_-\+=`\|\(\)\{\}\[\]\:;"'<>,\.\?\/]/g;
var patt4=/[~!@$%\^&*\-\+=`\\\\\[\]\[\]\]:;“,\.\?\/]/g;

如果有疑问,请使用反斜杠转义字符
\
。如果转义不需要转义的字符,则不会发生任何情况。

在上一次正则表达式测试中,需要转义其中的几个字符:

 var patt4 = /[~!@#$%\^&\*_-\+=`\|\(\)\{\}\[\]\:;"'<>,\.\?\/]/g;
var patt4=/[~!@$%\^&*\-\+=`\\\\\[\]\[\]\]:;“,\.\?\/]/g;

如果有疑问,请使用反斜杠转义字符。\。如果转义不需要转义的字符,则不会发生任何事情。

这可能更接近您想要的内容,我没有对其进行测试,但应该更加正确:

function test(password)
{
    var patt1 = /[a-z]/g;
    var patt2 = /[A-Z]/g;
    var patt3 = /[0-9]/g;
    var patt4 = /[~\!@#\$%\^&*_\-\+=`\|\\(\)\{\}\[\]:;"'<>,\.\?\/]/g;

    if (!patt1.test(password)) {
        return ("You need a lowercase letter.");
    }

    if (!patt2.test(password)) {
        return ("You need an uppercaseletter.");
    }

    if (!patt3.test(password)) {
        return ("You need a number.");
    }

    if (!patt4.test(password)) {
        return ("You need to use a one of the following characters '~!@#$%^&*_-+=`|\(){}[;.");
    }
}
功能测试(密码)
{
var patt1=/[a-z]/g;
var patt2=/[A-Z]/g;
var patt3=/[0-9]/g;
变量patt4=/[~\!@\$%\^&*\-\+=`\\\\\(\)\\\\\\\\[\]:;“,\.\?\/]/g;
如果(!patt1.测试(密码)){
return(“您需要一个小写字母。”);
}
如果(!patt2.测试(密码)){
return(“您需要大写字母。”);
}
如果(!patt3.测试(密码)){
return(“您需要一个号码”);
}
如果(!4.测试(密码)){
return(“您需要使用以下字符之一“~!@$%^&*.-+=`` | \(){}[;”;
}
}

这可能有点接近您想要的,我还没有测试过,但它应该朝着正确的方向发展:

function test(password)
{
    var patt1 = /[a-z]/g;
    var patt2 = /[A-Z]/g;
    var patt3 = /[0-9]/g;
    var patt4 = /[~\!@#\$%\^&*_\-\+=`\|\\(\)\{\}\[\]:;"'<>,\.\?\/]/g;

    if (!patt1.test(password)) {
        return ("You need a lowercase letter.");
    }

    if (!patt2.test(password)) {
        return ("You need an uppercaseletter.");
    }

    if (!patt3.test(password)) {
        return ("You need a number.");
    }

    if (!patt4.test(password)) {
        return ("You need to use a one of the following characters '~!@#$%^&*_-+=`|\(){}[;.");
    }
}
功能测试(密码)
{
var patt1=/[a-z]/g;
var patt2=/[A-Z]/g;
var patt3=/[0-9]/g;
变量patt4=/[~\!@\$%\^&*\-\+=`\\\\\(\)\\\\\\\\[\]:;“,\.\?\/]/g;
如果(!patt1.测试(密码)){
return(“您需要一个小写字母。”);
}
如果(!patt2.测试(密码)){
return(“您需要大写字母。”);
}
如果(!patt3.测试(密码)){
return(“您需要一个号码”);
}
如果(!4.测试(密码)){
return(“您需要使用以下字符之一“~!@$%^&*.-+=`` | \(){}[;”;
}
}


你能为这个创建一个JSFIDLE吗?粗略地看一眼就会发现你的大括号太多/太少了。
如果result='true'
需要是
如果result='true'
对于初学者来说
result==true
可能更好,因为根据chrome解释器,
true!='true'
如果result='true'实际上应该是
if(result==true)
,或者干脆是
if(result)
提示:打开浏览器上的开发人员控制台,您将立即看到语法错误。您可以为此创建一个JSFIDLE吗?粗略一看,就会发现大括号太多/太少了。
if result='true'
必须是
if result='true'
对于初学者来说
result==true
可能更好,因为根据chrome解释器的说法,
true!=“true”
if result='true'
实际上应该是
if(result==true)
,或者干脆是
if(result)
提示:打开浏览器上的开发者控制台,你会立即看到语法错误。
密码
不是一个参数。另外:为什么你需要多次调用函数?我不知道,他在OP问题中的每个“if”语句都会返回,你为什么不问他?我只是想让它不那么邪恶:-)在那个c中ase+1让它变得不那么邪恶!;-)我不知道邪恶的部分lol,我只是想知道你为什么把它叫做函数,我一定还在想python而不是js,我不知道它是双向的。但是代码似乎不是