我想验证密码:
-
包含至少1个数字
-
包含至少1个大写字母(大写)
-
包含至少1个普通字母(小写)
我用过这段代码
function validate()
{
var a=document.getElementById("pass").value
var b=0
var c=0
var d=0;
for(i=0;i<a.length;i++)
{
if(a[i]==a[i].toUpperCase())
b++;
if(a[i]==a[i].toLowerCase())
c++;
if(!isNaN(a[i]))
d++;
}
if(a=="")
{
alert("Password must be filled")
}
else if(a)
{
alert("Total capital letter "+b)
alert("Total normal letter "+c)
alert("Total number"+d)
}
}
让我困惑的一件事是,如果我输入一个数字,它也算作大写字母???
4 回答
“1”.toUpperCase ==“1”!你怎么说:)你可以这样检查:
现在,如果b,c或d等于0,则存在问题 .
正则表达式更适合这种情况 . 考虑:
更紧凑但兼容性更低的选项是在正则表达式数组上使用布尔聚合:
文件:test,every
如果无法转换,toUpperCase()和toLowerCase()仍将返回该字符,因此您的测试将成功进行数字处理 .
相反,在使用toLowerCase / toUpperCase进行测试之前,应首先检查
isNaN(a[i])
是否为true .很短的方式可能是: