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好的,对不起,对我来说,帮助不仅是调试代码,而且是如何使用良好实践的提示。