この記事の例では、JS を使用して、少なくとも文字、大文字と小文字の数字、文字を含むパスワード レベルを実装する 2 つの方法について説明します。皆さんの参考に共有してください。詳細は以下の通りです。
はしがき
パスワードの設定が単純すぎると簡単に破られる可能性があるため、多くの Web サイトではパスワードに非常に厳格な要件を設定しており、通常は文字、数字、文字の 3 つのうち 2 つを使用し、大文字と小文字を区別します。パスワードが単純すぎると、エラー メッセージが表示されます。または、パスワード レベル (低、中、高) を表示して、ユーザーが高度なパスワードを設定できるようにします。では、JS を使用して実装するにはどうすればよいでしょうか?
実装コードは次のとおりです:
function passwordLevel(password) { var Modes = 0; for (i = 0; i < password.length; i++) { Modes |= CharMode(password.charCodeAt(i)); } return bitTotal(Modes); //CharMode函数 function CharMode(iN) { if (iN >= 48 && iN <= 57)//数字 return 1; if (iN >= 65 && iN <= 90) //大写字母 return 2; if ((iN >= 97 && iN <= 122) || (iN >= 65 && iN <= 90)) //大小写 return 4; else return 8; //特殊字符 } //bitTotal函数 function bitTotal(num) { modes = 0; for (i = 0; i < 4; i++) { if (num & 1) modes++; num >>>= 1; } return modes; } }
を使用します
通常の使用
使用構文:passwordLevel(string)
検証ルール: 数字、大文字、小文字、特殊文字
関数の結果: パスワード
に含まれるルールの数を返します。
実行例:
passwordLevel("123456") //返回1 passwordLevel("Abc'123456") //返回4
jquery.validate.js と組み合わせて使用します:
//添加验证方法:至少包含两种规则 $.validator.addMethod("strongPsw",function(value,element){ if(passwordLevel(value)==1){returnfalse;} returntrue },"格式不符合"); //开始验证 $(".form").validate({ rules:{ pwd:{ required:true, //必填 minlength:6, //最小长度 maxlength:32, //最大长度 strongPsw:true, //密码强度 }, repwd:{ required:true, minlength:6, maxlength:32, equalTo:"#pwd" //再次填写密码需一致 } } });
パスワードの生成と強度検出に興味がある友人は、オンライン ツールを参照することもできます:
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。