您的位置:首页 > Web前端 > JavaScript

【JavaScript 学习--08】Js用户新密码正则验证

2017-10-18 15:31 344 查看
在写JS代码时候,经常会遇到验证用户输入的情形, 下面代码是我现在项目中需要验证用户更改新密码。

新密码规则:

- 密码长度[8, 128),

- 新密码不能和老密码相同,

- 必须包含数字和字母

- 必须包含至少一个小写字母,

- 必须包含至少一个大写字母,

- 至少有两个数字,

- 不能有非法字符(<>{}|\^`:)

const FORBIDDEN_CHARACTERS = "<>{}|\\^`:";
const LOCAL_USER_PASSWORD_MIN_LENGTH = 8;
const LOCAL_USER_PASSWORD_MAX_LENGTH = 128;

function newPasswordIsValid(newPassword) {
if (newPassword.length >= LOCAL_USER_PASSWORD_MIN_LENGTH &&
newPassword.length < LOCAL_USER_PASSWORD_MAX_LENGTH &&
newPassword !== $("#applicationLoginUsername").val() &&
isAlphaNumeric(newPassword) &&
hasOneUpperAndOneLowerCaseCharacter(newPassword) &&
hasAtleastTwoDigits(newPassword) &&
!hasTwoSameConsecutiveCharacters(newPassword) &&
!hasInvalidCharacters(newPassword)) {
return true;
}
return false;
}

let isAlphaNumeric = function(string) {
return /^[0-9a-zA-Z]+$/.test(string);
};

let hasOneUpperAndOneLowerCaseCharacter = function(string) {
return /(.*[A-Z]+.*)/.test(string) && /(.*[a-z]+.*)/.test(string);
};

let hasAtleastTwoDigits = function(string) {
return /(.*\d.*\d)/.test(string);
};

let hasTwoSameConsecutiveCharacters = function(string)
4000
{
for (var i = 1; i < string.length; ++i) {
if (string[i] === string[i - 1])
return true;
}
return false;
};

let hasInvalidCharacters = function(string) {
for (var i = 1; i < string.length; ++i) {
const asciiCode = string[i].charCodeAt(0);
if (asciiCode >= 0 && asciiCode <= 20) {
return true;
}

if (asciiCode === 127) {
return true;
}

if (FORBIDDEN_CHARACTERS.includes(string[i]) {
return true;
}
}
return false;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: