正则校验部分记录(包含强弱密码校验连续数字、字母、关键
字、键盘相邻码等)
1、/^[1-9]\d*$/ //正整数 ⼤于0
2、/^(([1-9][0-9]{0,7})\.([0-9]{2}))|[0]\.([0-9]{2})$/ //⾦额必须保留两位⼩数,⼩数点前⾯控制1-8位
3、/(^[1-9]{1}[0-9]*$)|(^[1-9][0-9]*\.[0-9]{1,2}$)|(^[0]\.[1-9]{1}$)|(^[0]\.[0]{1}[1-9]{1}$)|(^[0]\.[1-9]{1}[0]{1}$)/ //⾦额可输⼊⼤于等于0的⾦额,⼩数点后最多输⼊两位
4、/^0\d{2,3}-\d{7,8}|\d{5,8}|((\+86)|(86))?(13|14|15|16|17|18|19)\d{9}$/ //⼿机、座机号⼀起校验例如0755-(号码)、(+86)或者不需要区号
5、/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/ //⾝份证,不区分⼤⼩写x
6、/^[^\s]*$/ //全部不允许空格
7、/^\S+(\s+\S+)*$///⾸末不允许空格
8、/^[\u4E00-\u9FA5A-Za-z0-9_]+$/ //中英⽂、数字任何满⾜⼀种即可长度⼤于1即可
9、/^[A-Za-z0-9_]+$/ //英⽂+数字
10、/^[\u4E00-\u9FA5A-Za-z_]+$/ //中英⽂
11、/^[a-zA-Z0-9]+\s?[\_\-()a-zA-Z]*[a-zA-Z]+$/ //校验英⽂名中间的连接符为‘-’、‘_’,连接符不能出现在⾸尾
12、/^((1[34578]\d{9})(;|;))*?(1[34578]\d{9})(;|;)?$/ //校验可多个⼿机号或者⼀个⼿机号,多个⼿机号以中英⽂分号分割,单个⼿机号结束可出现分号也可不出现分号
13、/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$/ //只能输⼊⼤⼩写字母以及数字,三种类型必须同时存在,长度8-20
14、/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,20}$/ //只能输⼊⼤⼩写字母、特殊字符以及数字,必须存在三种以上,长度8-20
15、强弱密码校验
/
/ 校验强弱密码userName(⽤户姓名),pass (密码),panent(可去除,我⾃⼰项⽬国际化传输)
export function passwordValid(userName, pass ,parent) {
var passLower = LocaleLowerCase();
let userNameLower = LocaleLowerCase();
var flag = ' ' ;
if (pass == null || pass.length < 8 || pass.length > 20 || pass.length == '') {
flag = parent.$t('passwordValid.length');
return flag;
}
var isDigit = /^.*[0-9]+.*/;//数字
var isLowerCase = /^.*[a-z]+.*/; // isLowerCase ⼩写字母
var isUpperCase = /^.*[A-Z]+.*/; // isUpperCase ⼤写字母
var regEx = /^.*[^a-zA-Z0-9]+.*/;// 特殊字符
// 记录匹配的次数
var num = 0;
if (st(pass)) {
num = num + 1;
}
if (st(pass)) {
num = num + 1;
}
if (st(pass)) {
num = num + 1;
}
}
if (st(pass)) {
num = num + 1;
}
if (num <= 2) {
flag = parent.$t('passwordValidbination');
return flag;
}
//新密码不能包含⽤户名(例如原型、倒写、⼤写、重复)
if (passLower.indexOf(userNameLower) >= 0) {
flag = parent.$t('passwordValid.pwdContain');
return flag;
}
let newPass = passLower.split("").reverse().join("");//倒序pass
if (newPass.indexOf(userNameLower) >= 0){
flag = parent.$t('passwordValid.pwdContain');
return flag;
}
//密码中不能包含有连续四位及以上顺序(或逆序)数字(如:密码中不能包含1234或3210等)。
var numberSequence = false;
for (var i = 0; i < pass.length - 3; i++) {
if (!st(pass.substring(i, i + 1))
|| !st(pass.substring(i + 1, i + 2) + "")
|| !st(pass.substring(i + 2, i + 3) + "")
|| !st(pass.substring(i + 3, i + 4) + "")) {
continue;
}
var no1 = Number(pass.substring(i, i + 1));
var no2 = Number(pass.substring(i + 1, i + 2));
var no3 = Number(pass.substring(i + 2, i + 3));
var no4 = Number(pass.substring(i + 3, i + 4));
if (no1 + 1 == no2 && no2 + 1 == no3 && no3 + 1 == no4) {
numberSequence = true;
}
if (no2 + 1 == no1 && no3 + 1 == no2 && no4 + 1 == no3) {
numberSequence = true;
}
}
if (numberSequence) {
flag = parent.$t('passwordValid.numOrder');
return flag;
}
/
/密码中不能包含有连续四位及以上顺序(或逆序)字母,字母不区分⼤⼩写(如:密码中不能包含abcd或ABCD或AbcD或DcbA等)。
var letterSequence = false;
for (var i = 0; i < passLower.length - 3; i++) {
if (!st(passLower.substring(i, i + 1)) || !st(passLower.substring(i + 1, i + 2) + "") || !st(passLower.substring(i + 2, continue;
}
var no1 = passLower.charAt(i).charCodeAt() + 0;
var no2 = passLower.charAt(i + 1).charCodeAt() + 0;
var no3 = passLower.charAt(i + 2).charCodeAt() + 0;
var no4 = passLower.charAt(i + 3).charCodeAt() + 0;
if (no1 + 1 == no2 && no2 + 1 == no3 && no3 + 1 == no4) {
分手快乐梁静茹歌词letterSequence = true;
}
if (no2 + 1 == no1 && no3 + 1 == no2 && no4 + 1 == no3) {
letterSequence = true;
}
}
if (letterSequence) {
不雅照全集flag = parent.$t('passwordValid.wordOrder');
return flag;
return flag;
}
/
/密码中不能包含有连续四位及以上重复字符,字母不区分⼤⼩写(如:密码中不能包含8888、aaaa 或AAAA或BbbB或 $$$$等四位及以上的重复字符)。 var fourOrMoreSame = false;
for (var i = 0; i < pass.length - 3; i++) {
if ((passLower.charAt(i)) == passLower.charAt(i + 1) &&
passLower.charAt(i + 1) == passLower.charAt(i + 2) &&
passLower.charAt(i + 2) == passLower.charAt(i + 3)) {
fourOrMoreSame = true;
}
}
if (fourOrMoreSame) {
flag = parent.$t('inue');
return flag;
}
// 键盘连续字母判断
if (isKeyBoardContinuousChar(passLower)){
flag = parent.$t('passwordValid.keyBoardContinuous');
return flag;
}
var cont = /^.*admin.*$/;
var cont2 = /^.*pass.*$/;
//禁忌词不区分⼤⼩写不能作为密码的⼀部分存在于密码中(如:admin, pass)。
家人幽默名if (st(passLower) || st(passLower)) {
flag = parent.$t('passwordValid.keyWord');
return flag;
}
return 'correct';
}
// 键盘相邻字符校验
export function isKeyBoardContinuousChar(str) {
var c1 = [
['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+'],
['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '{', '}', '|'],
['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ':', '"'],
['z', 'x', 'c', 'v', 'b', 'n', 'm', '<', '>', '?']
]
;
var c2 = [
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '='],
['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', '\\'],
中专生如何单招['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '\''],
['z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/']
];
str = str.split("");
//获取坐标位置
var y = [];
var x = [];
for (var c = 0; c < str.length; c++) {
y[c] = 0; //当做~`键处理
x[c] = -1;
for (var i = 0; i < c1.length; i++) {
for (var j = 0; j < c1[i].length; j++) {
if (str[c] == c1[i][j]) {
y[c] = i;
x[c] = j;
}
}
}
if (x[c] != -1) continue;
for (var i = 0; i < c2.length; i++) {
for (var j = 0; j < c2[i].length; j++) {
for (var j = 0; j < c2[i].length; j++) {
if (str[c] == c2[i][j]) {
y[c] = i;
x[c] = j;
}
}
}
}
/
/匹配坐标连线
for (var c = 1; c < str.length - 1; c++) {
if (y[c - 1] == y[c] && y[c] == y[c + 1]) {
if ((x[c - 1] + 1 == x[c] && x[c] + 1 == x[c + 1]) || (x[c + 1] + 1 == x[c] && x[c] + 1 == x[c - 1])) { return true;
}
} else if (x[c - 1] == x[c] && x[c] == x[c + 1]) {
if ((y[c - 1] + 1 == y[c] && y[c] + 1 == y[c + 1]) || (y[c + 1] + 1 == y[c] && y[c] + 1 == y[c - 1])) { return true;
}
超越梦想歌词}
}
return false;
}
16、随机⽣成8-20的包含数字、⼤⼩写字母、特殊字符的密码
周杰伦 前世情人/**
* 2021年8⽉20⽇
* ⽣成8-20位随机密码,必包含⼤写⼩写数字特殊字符
* @param length,//⽣成随机密码长度
* @param passwordArray,⽣成密码字符串数组,默认⼤写,⼩写,数字,特殊字符
* @return 返回⽣成的密码字符串
*/
export function randPassword(length, passwordArray) {
var min = 8; //最⼩长度
var max = 20; //最⼤长度
length = Math.floor(Math.random() * (max - min + 1)) + min || 8; //⽣成随机密码长度
// 密码串----默认⼤写字母⼩写字母数字,特殊字符
passwordArray = passwordArray || ['ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz', '1234567890', '~!@#$%^&*()_-+=[]{}|\\":;"\'\',./?<>']; var password = '';
// 随机⽣成开始字符串
var startIndex = parseInt(Math.random() * (length));
var randIndex = [];
for (var i = 0; i < length; i++) {
// 创建数组,⽤于取随机位置 [0,1,2,3,4,5,....]
randIndex.push(i);
}
for (var i = 0; i < length; i++) {
// 根据随机数组⽣成随机位置
var r = parseInt(Math.random() * (randIndex.length));
var num = randIndex[r] + startIndex;
// 根据随机值取余数
var randRemainder = num % passwordArray.length;
// 当前密码串【⼤写字母,⼩写字母,数字等】
var currentPassword = passwordArray[randRemainder];
// 根据当前密码串长度取随机数
var index = parseInt(Math.random() * (currentPassword.length));
// 获取随机字符串
var str = currentPassword.substr(index, 1);
// 删除随机数组中已经使⽤的值
randIndex.splice(r, 1);
password += str;
}
return password;
}
console.log('⽣成的密码:', randPassword());
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论