使用javascrpt怎么實現(xiàn)一個密碼強度校驗函數(shù)?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創(chuàng)新互聯(lián)秉承實現(xiàn)全網(wǎng)價值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),網(wǎng)站制作、成都網(wǎng)站制作,微信平臺小程序開發(fā),網(wǎng)頁設計制作,手機網(wǎng)站制作設計,成都全網(wǎng)營銷推廣幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術人才,對客戶都以感恩的心態(tài)奉獻自己的專業(yè)和所長。
1、密碼最小和最大長度
2、連續(xù)字符串出現(xiàn)的次數(shù)
3、字符連續(xù)出現(xiàn)的次數(shù)
4、禁止特定的字符串作為密碼
5、密碼字符串的組合強度要求,必須含有大小寫字母,必須含有數(shù)字,必須含有特殊字符
6、輸入密碼必須與確認密碼一致
7、支持禁止使用用戶名作為密碼
8、是否存在連續(xù)性的字符串,是否存在逆序性的字符串
(function(window, verifyPwd){
window.verifyPwd = {
/*最小長度*/
minLength : 6
/*最大長度*/
maxLength : 18,
/*字符重復次數(shù)*/
repeatCount : 0,
/*連續(xù)字符*/
seriesCount : 3,
/*特定過濾字符串*/
filter : [
"qaz",
"wsx",
"edc",
"qwe",
"asd",
"zxc"
],
/*允許的字符串*/
arrRegex : ['[0-9]', '[a-z]', '[A-Z]', '[!@#$%^&*()_-]' ],
/**
* 驗證密碼
* @param userName 用戶名
* @param pwd 密碼
* @param confirmPwd 確認密碼
* @returns {boolean}
*/
verify : function(userName, pwd, confirmPwd){
userName = trim(userName);
pwd = trim(pwd);
if(!userName || userName.length == 0){
alert('請先輸入用戶名');
return false;
}
if(!pwd || pwd.length == 0){
alert('請輸入密碼');
return false;
}
if (pwd.length < this.minLength) {
alert('密碼長度至少需要' + this.minLength + '位');
return false;
}
if (pwd.length > this.maxLength) {
alert('密碼長度超過'+ this.maxLength +'位');
return false;
}
/*判斷輸入密碼與確認密碼是否一致*/
if(confirmPwd && confirmPwd.length > 0){
if(pwd != confirmPwd){
alert('輸入密碼與確認密碼不一致');
return false;
}
}
/*判斷密碼中是否存在用戶名*/
if (pwd.indexOf(userName) >= 0) {
alert('密碼中不能出現(xiàn)用戶名為' + userName);
return false;
}
if (!eval('/' + this.arrRegex[0] + '/').test(pwd)) {
alert('密碼沒有包含數(shù)字');
return false;
}
if (!eval('/' + this.arrRegex[1] + '/').test(pwd)) {
alert('密碼沒有包含小寫字母');
return false;
}
if (!eval('/' + this.arrRegex[2] + '/').test(pwd)) {
alert('密碼沒有包含大寫字母');
return false;
}
if (!eval('/' + this.arrRegex[3] + '/').test(pwd)) {
alert('密碼沒有包含!@#$%&*_等至少一個特殊字符');
return false;
}
/*判斷是否存在過濾性字符串*/
if(this.filter.length > 0){
for(var i = 0, length = this.filter.length; i < length; i++){
var value = this.filter[i];
if(pwd.indexOf(value) < 0){
continue;
}
alert("密碼中不允許含有"+ value);
return false;
}
}
/*判斷是否存在重復字符串*/
if(this.isRepeate(pwd)){
alert('密碼中不能出現(xiàn)重復字符');
return false;
}
/*判斷是否存在連續(xù)性字符串*/
if(this.isSeries(pwd)){
alert('密碼中不能存在'+ this.seriesCount +'個以上的連續(xù)字符');
return false;
}
return true;
},
/**
* 是否存在重復字符串
* @param pwd 密碼
* @returns {boolean}
*/
isRepeate : function(pwd){
if(pwd && pwd.length > 0){
for(var i = 0, length = pwd.length; i < length; i++){
var currentChar = pwd.charAt(i);
var prevChar = i == 0 ? "" : pwd.charAt(i - 1);
if(currentChar == prevChar){
return true;
}
}
}
return false;
},
/**
* 是否存在連續(xù)性字符串
* @param pwd 密碼
* @returns {boolean}
*/
isSeries : function(pwd){
if(pwd && pwd.length > 0) {
/*自身算起*/
var ascSeriesCount = 1;
var descSeriesCount= 1;
/*存在順序型的連續(xù)性的字符串*/
for (var i = 0, length = pwd.length; i < length; i++) {
var currentCharCode = pwd.charCodeAt(i);
var prevCharCode = i == 0 ? "" : pwd.charCodeAt(i - 1);
if(currentCharCode == prevCharCode + 1){
ascSeriesCount++;
if(ascSeriesCount == this.seriesCount){
return true;
}
} else{
ascSeriesCount = 1;
}
}
/*存在逆序性的連續(xù)性的字符串*/
for (var i = pwd.length - 1; i >= 0; i--) {
var currentCharCode = pwd.charCodeAt(i);
var prevCharCode = (i - 1) >= 0 ? pwd.charCodeAt(i - 1) : "";
if(currentCharCode + 1 == prevCharCode){
descSeriesCount++;
if(descSeriesCount == this.seriesCount){
return true;
}
} else{
descSeriesCount = 1;
}
}
}
return false;
},
/**
* 初始化方法
* @param userNameId 用戶id
* @param pwdId
*/
init : function(userNameId, pwdId){
$("#"+ pwdId).on("blur", function(){
var userName = $("#"+ userNameId).val();
var pwd = this.value;
if(userName.length == 0){
$("#"+ userNameId).focus();
alert("請輸入用戶名");
return false;
}
/*若驗證正確,進行加密處理*/
if(this.verify(userName, pwd)){
pwd = md5(pwd);
$("#"+ pwdId).val(pwd);
}
});
}
}
})(window, undefined);看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
當前名稱:使用javascrpt怎么實現(xiàn)一個密碼強度校驗函數(shù)
文章起源:http://www.chinadenli.net/article40/gshoho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、企業(yè)網(wǎng)站制作、小程序開發(fā)、網(wǎng)站設計公司、App開發(fā)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)