1.密码不可是三位或者三位以上连续的数字或字母(123,abc)
// 不能连续字符(如123、abc)连续3位或3位以上
const LxStr = function(rule, value, callback) {
var arr = value.split('')
var flag = true
for (var i = 1; i < arr.length - 1; i++) {
var firstIndex = arr[i - 1].charCodeAt()
var secondIndex = arr[i].charCodeAt()
var thirdIndex = arr[i + 1].charCodeAt()
thirdIndex - secondIndex === 1
secondIndex - firstIndex === 1
if ((thirdIndex - secondIndex === 1) && (secondIndex - firstIndex === 1)) {
flag = false
}
}
if (!flag) {
callback(new Error('不允许录入3个连续或者3个以上重复数字或字母'))
}
return callback()
}
2.密码不可是三位或者三位以上相同类型的字符(111,qqq,!!!)
// 不允许录入3个连续或者3个以上相同类型的字符(122,amm,!!!)
const LxStr = function(rule, value, callback) {
var arr = value.split('')
var flag = true
for (var i = 1; i < arr.length - 1; i++) {
var firstIndex = Number(arr[i - 1]) >= 0 ? 'number' : /^[a-zA-Z]+$/.test(arr[i - 1]) ? 'letter' : 'te'
var secondIndex = Number(arr[i]) >= 0 ? 'number' : /^[a-zA-Z]+$/.test(arr[i]) ? 'letter' : 'te'
var thirdIndex = Number(arr[i + 1]) >= 0 ? 'number' : /^[a-zA-Z]+$/.test(arr[i + 1]) ? 'letter' : 'te'
// console.log(firstIndex, secondIndex, thirdIndex, '113++')
if (firstIndex === secondIndex && secondIndex === thirdIndex) {
flag = false
}
}
if (!flag) {
callback(new Error('不允许录入3个连续或者3个以上相同类型的字符'))
}
return callback()
}
然后将函数引入即可
rules: {
newPassword: [
{ required: true, message: '不可为空' },
{ validator: (rule, value, callback) => {
LxStr(rule, value, callback)
}, trigger: ['change', 'blur'] }
],
repeatPassword: [
{ required: true, message: '不可为空' }
]
},