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