Php 形成脚本传递强度并生成传递
我有以下脚本用于在表单上输入密码:Php 形成脚本传递强度并生成传递,php,javascript,forms,Php,Javascript,Forms,我有以下脚本用于在表单上输入密码: $('#genPass').click(function() { var password = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < 12; i++) password += possible.charAt(Math.floor(Math.random
$('#genPass').click(function() {
var password = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < 12; i++)
password += possible.charAt(Math.floor(Math.random() * possible.length));
$('input[name="password"]').val(password);
document.getElementById("str").innerHTML = password;
});
function passwordStrength(password)
{
var desc = new Array();
desc[0] = "Very Weak";
desc[1] = "Weak";
desc[2] = "Better";
desc[3] = "Medium";
desc[4] = "Strong";
desc[5] = "Strongest";
var score = 0;
//if password bigger than 6 give 1 point
if (password.length > 6) score++;
//if password has both lower and uppercase characters give 1 point
if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;
//if password has at least one number give 1 point
if (password.match(/\d+/)) score++;
//if password has at least one special caracther give 1 point
if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) ) score++;
//if password bigger than 12 give another 1 point
if (password.length > 12) score++;
document.getElementById("passwordStrength").innerHTML = desc[score];
document.getElementById("passwordStrength").className = "strength" + score;
}
$('#genPass')。单击(函数(){
var password=“”;
var-mablue=“ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789”;
对于(变量i=0;i<12;i++)
password+=可能的.charAt(Math.floor(Math.random()*可能的.length));
$('input[name=“password”]').val(password);
document.getElementById(“str”).innerHTML=密码;
});
函数密码强度(密码)
{
var desc=新数组();
desc[0]=“非常弱”;
desc[1]=“弱”;
desc[2]=“更好”;
desc[3]=“中等”;
desc[4]=“强”;
desc[5]=“最强”;
var得分=0;
//如果密码大于6,则打1分
如果(password.length>6)得分++;
//如果密码同时包含小写和大写字符,则得1分
if((password.match(/[a-z]/)&&(password.match(/[a-z]/))得分++;
//如果密码至少有一个数字,则打1分
if(password.match(/\d+/))分数++;
//如果密码至少有一个特殊外壳,则得1分
如果(password.match(/.[!,@,#,$,%,^,&,*,?,,~,-,(,)]/)得分++;
//如果密码大于12,再打1分
如果(password.length>12)得分++;
document.getElementById(“passwordStrength”).innerHTML=desc[score];
document.getElementById(“passwordStrength”).className=“strength”+分数;
}
输入字段和生成密码按钮:
<input name="password" type="password" size="25" maxlength="20" id="pass" onchange="passwordStrength(this.value)" onselect="passwordStrength(this.value)" onclick="passwordStrength(this.value)"/>
<button id="genPass" type="button">Generate Password !</button>
生成密码!
现在,一旦你点击一个按钮,它就会在密码输入中生成一个密码,但只有当你点击密码输入字段时,密码强度才会显示出来。
我希望它在您单击“生成”按钮时显示强度,有什么想法吗?$(“#genPass”)。单击(函数(){
$('#genPass').click(function() {
var password = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < 12; i++)
password += possible.charAt(Math.floor(Math.random() * possible.length));
$('input[name="password"]').val(password);
document.getElementById("str").innerHTML = password;
passwordStrength(password); //added this
});
var password=“”;
var-mablue=“ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789”;
对于(变量i=0;i<12;i++)
password+=可能的.charAt(Math.floor(Math.random()*可能的.length));
$('input[name=“password”]').val(password);
document.getElementById(“str”).innerHTML=密码;
passwordStrength(password);//添加了这个
});
为什么您的特殊字符正则表达式缺少这么多特殊字符?在JS中生成密码?这不是一个好做法,最好使用ajax
从PHP
脚本获取密码。隐藏逻辑并使用更好的工具。@mkjasinski,寻求帮助…不作评判,但感谢:/@Lefty好的,对不起,对我来说,帮助不仅是调试代码,而且是如何使用良好实践的提示。