我必須從頭開始製作密碼錶(基本上不能使用jquery之類的外部框架),而且我有兩個問題。密碼強度測量儀
我似乎無法找到一種方式,當用戶輸入某個字符時,它不會跳到很大的長度。
而且即使通過設置寬度,我也無法防止儀表變大。
<input type="password" id="newPass" style="width:206px" onkeyup="strengthMeter()"/><br/><br/>
<div style="width:100px;display:inline;"><div id="meter" style="background-color:red;width:10px;height:10px;"></div>
<span>Strength</span><span id="strength" style="float:right">Weak</span>
</div>
function strengthMeter(){
var password = $("newPass").value;
var numEx = /\d/;
var lcEx = new RegExp("[a-z]");
var ucEx = new RegExp("[A-Z]");
var symbols = ['/', '@', '#', '%', '&', '.', '!', '*', '+', '?', '|','(', ')', '[', ']', '{', '}', '\\'];
var meterMult = 1;
for(var k = 0; k < password.length; k++){
if(numEx.test(password)){
meterMult += 0.75;
$("meter").style.width = " " + (10*meterMult) + "px";
}
if(ucEx.test(password)){
meterMult += 1;
$("meter").style.width = " " + (10*meterMult) + "px";
}
if(lcEx.test(password)){
meterMult += 0.25;
$("meter").style.width = " " + (10*meterMult) + "px";
}
for(var i = 0; i < symbols.length; i++){
if(password.indexOf(symbols[i]) >= 0){
meterMult += 1;
$("meter").style.width = " " + (10*meterMult) + "px";
}
}
if(meterMult >= 12){
$("strength").innerHTML = "Strong";
}
else if(k >= 6){
$("strength").innerHTML = "Medium";
}
else
$("strength").innerHTML = "Weak";
}
}
上面有我用來製作儀表的div。基本上,我正在考慮一個div,並在另一個div中擴展它來製作計量表,就是這樣。請幫忙!提前致謝。
我們真的使用正確的算法嗎? http://xkcd.com/936/ –
密碼強度測量的替代方法:http://stackoverflow.com/questions/948172/password-strength-meter/11268104#11268104 –