// check the result generally
var ip = new RegExp(/^0[^71]|^11|^10|^19|^18|^17|120/);
var noVal = "";
// message for notice
var msgMap = {
"^0":" 请输入原有密码",
"^11":" 新密码复杂度不够",
"^10":" 新密码过短",
"^17":" 请输入新密码",
"^19":" 新密码过长",
"^18":" 新密码包括非法字符",
"120":" 密码重复错误"
};
// find the input text
var pMap = {
"^0":"pw2",
"^11":"pw0",
"^10":"pw0",
"^17":"pw0",
"^19":"pw0",
"^18":"pw0",
"120":"pw1"
};
// initiate
function initP(){
$("#modPwd").click(function(){
var display = $("#inputPwd").css("display");
$("#inputPwd").css("display",display =="none"?"":"none");
});
$("input[type='submit']").click(function(){
return sC();//submit check
});
iC();//input check
}
//check for submit
function sC(){
var ps = getApw();
var r = aop(ps[2])+""+checkPass(ps[0])+""+arp(ps[0],ps[1]);
//if (aop(ps[2]) == 1 && (ps[0] == noVal || ps[1] == noVal)) {alert("请输入新密码");return false;}
//alert(r);
if (r.match(ip))
{
for(var k in msgMap){
if (r.match(k))
{
alert(msgMap[k]);
try
{
$("#"+pMap[k]).select();
return false;
break;
}
catch (e)
{}
}
}
}
}
// get all password
function getApw(){
var ps = new Array();
$("input[id^='pw']").each(function(e){
var i = this.id.replace('pw','');
ps[i] = this.value;
});
return ps;
}
// check for input
function iC(){
var n = document.createElement("span");//create the element for notice
$(n).css({color:'red'});
$("input[id^='pw']").keyup(function(){
var ps = getApw();
var r = aop(ps[2])+""+checkPass(ps[0])+""+arp(ps[0],ps[1]);
//alert(r);
if (r.match(ip))
{
for(var k in msgMap){
if (r.match(k))
{
n.innerText = msgMap[k];
$("#"+pMap[k]).after(n);// display the notice
break;
}
}
}
else { n.innerText = "";}
});
}
// check the repeat password
function arp(np,rp){
if (np == rp) return 1;
else return 0;
}
// check the old password
function aop(op){
if (op == noVal)return 0;
else return 1;
}
// clean all password input text
function clean(){
var ps = getApw();
for (var i = 0;i < ps.length ;i++ )
{
ps[i].value="";
}
}
html文件中的form表单
<form id="pw">
ORIGINAL PASSWORD:<input type="text" id="pw0"/>
<br><br>
NEW PASSWORD:<input type="text" id="pw1"/>
<br><br>
REPEAT PASSWORD:<input type="text" id="pw2"/>
<br><br>
<input type="submit" value="submit"/>
</form>
此篇文章仍为原创,上一次的密码验证在使用中出现了不少问题,所以进行了重写,这回的代码和上次相比略有清爽感,绝的作为程序员代码重构还是很重要的,希望能有读者给予评论,哈哈。
本文介绍了一个密码验证系统的重构过程,通过JavaScript实现密码强度检测、重复验证等功能,并提供了实时反馈。涉及正则表达式、DOM操作等技术。

被折叠的 条评论
为什么被折叠?



