密码修改,可能密码规则是由管理员操作密码规则
例如:
- 新密码长度不能大于6个字符
- 新密码必须包含至少1个0~9之间的数字
- 新密码允许重复上一次密码
- 新密码有效期为90天
- 新密码必须包含至少1个特殊字符
- 新密码必须包含至少几个AZ或az之间的字母
template代码
<el-form-item label="新密码" prop="newPassword">
<el-input
:rule="[
{ required: true, message: '请输入密码', trigger: 'blur' },
{ min: 6, max: 30, message: '长度在 6 到 30 个字符', trigger: 'blur' },
{ validator: validatePass, trigger: 'blur' }
],"
v-model.trim="stepForm.newPassword"
placeholder="请设置新密码"
show-password
maxlength="30"
@input="handleCheckingChange"
/>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-input
:rule=" [
{ required: true, message: '请确认密码', trigger: 'blur' },
{ min: 6, max: 30, message: '长度在 6 到 30 个字符', trigger: 'blur' },
{ validator: validatePass2, trigger: 'blur' }
]"
v-model.trim="stepForm.confirmPassword"
placeholder="请确认密码"
show-password
maxlength="30"
@input="handleCheckingChange"
/>
</el-form-item>
校验
var validatePass = (rule, value, callback) => {
queryApplyTypeCodeApi().then(res => {
if (res.code !== 0) return
var reg2 = /\d/g
var reg3 = /[A-Za-z]/g
var reg4 = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/g
if (value === '') {
callback(new Error('请输入密码'))
} else if (value.length > res.data.passwordLength) {
callback(new Error(`输入字符不能超过${res.data.passwordLength}个字符`))
} else if ((!Array.isArray(value.match(reg2)) || value.match(reg2).length < res.data.passwordFigureNumber) && res.data.passwordFigureNumber !== 0) {
callback(new Error(`至少输入${res.data.passwordFigureNumber}位数字`))
} else if ((!Array.isArray(value.match(reg3)) || value.match(reg3).length < res.data.passwordLetterNumber) && res.data.passwordLetterNumber !== 0) {
callback(new Error(`至少输入${res.data.passwordLetterNumber}位字母`))
} else if ((!Array.isArray(value.match(reg4)) || value.match(reg4).length < res.data.passwordCharNumber) && res.data.passwordCharNumber !== 0) {
callback(new Error(`至少输入${res.data.passwordCharNumber}位特殊字符`))
} else {
if (this.stepForm.confirmPassword !== '') {
this.$refs.partForm.validateField('confirmPassword')
}
callback()
}
})
}
var validatePass2 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'))
} else if (value !== this.stepForm.newPassword) {
callback(new Error('两次输入密码不一致!'))
} else {
callback()
}
}
接口返回数据