修改密码动态校验密码规则

密码修改,可能密码规则是由管理员操作密码规则

例如:

  1. 新密码长度不能大于6个字符
  2. 新密码必须包含至少1个0~9之间的数字
  3. 新密码允许重复上一次密码
  4. 新密码有效期为90天
  5. 新密码必须包含至少1个特殊字符
  6. 新密码必须包含至少几个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()
      }
    }

接口返回数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值