日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

elementui表單密碼強度自定義驗證

作者:前端開心果 更新時間: 2023-07-31 編程語言

在這里插入圖片描述
密碼強度如上圖片
涉及到的相關正則表達式:

export const PASSOWRD_REG_WEEK = /^[0-9]{6,8}$|^[A-Z]{6,8}$|^[a-z]{6,8}$|^[\W_!@#$%^&*`~()-+=]{6,8}$/;
// eslint-disable-next-line no-control-regex
export const PASSOWRD_REG_MIDDLE = /^(?!\d+$)(?![a-zA-Z]+$)[\da-zA-Z]{8,10}$|^(?!\d+$)(?![\x00-\xff]+$)[\d\x00-\xff]{8,10}$|^(?!a-zA-Z+$)(?![\x00-\xff]+$)[a-zA-Z\x00-\xff]{8,10}$/;
export const PASSOWRD_REG_POWER = /^(?=.*[a-zA-Z])(?=.*[\W_!@#$%^&*`~()-+=])(?=.*\d)[^]{10,16}$|^(?=.*[a-zA-Z])(?=.*[\W_!@#$%^&*`~()-+=])[^]{10,16}$|^(?=.*\d)(?=.*[\W_!@#$%^&*`~()-+=])[^]{10,16}$|^(?=.*[a-zA-Z])(?=.*\d)[^]{10,16}$/;

vue 頁面相關js部分

data() {
const validatePassword = (rule, value, callback) => {
      if (this.activeName === 'first') {
        if (value.length < 6 || value.length > 16) {
          this.$refs.tip.style.display = 'none'
          callback(new Error('密碼位數為6位 ~ 16位'));
        } else if (value === '') {
          callback(new Error('請輸入新密碼'));
        } else if (validate.PASSOWRD_REG_WEEK.test(value)) {
          this.$refs.level.innerText = '弱'
          this.$refs.tip.style.display = 'block'
          callback();
        } else if (validate.PASSOWRD_REG_MIDDLE.test(value)) {
          this.$refs.level.innerText = '中'
          this.$refs.tip.style.display = 'block'
          callback();
        } else if (validate.PASSOWRD_REG_POWER.test(value)) {
          this.$refs.level.innerText = '強'
          this.$refs.tip.style.display = 'block'
          callback();
        }
      } else {
        if (value.length < 6 || value.length > 16) {
          this.$refs.tip2.style.display = 'none'
          callback(new Error('密碼位數為6位 ~ 16位'));
        } else if (value === '') {
          callback(new Error('請輸入新密碼'));
        } else if (validate.PASSOWRD_REG_WEEK.test(value)) {
          this.$refs.level2.innerText = '弱'
          this.$refs.tip2.style.display = 'block'
          callback();
        } else if (validate.PASSOWRD_REG_MIDDLE.test(value)) {
          this.$refs.level2.innerText = '中'
          this.$refs.tip2.style.display = 'block'
          callback();
        } else if (validate.PASSOWRD_REG_POWER.test(value)) {
          this.$refs.level2.innerText = '強'
          this.$refs.tip2.style.display = 'block'
          callback();
        }
      }
    }
	return {
		loginRules: {
	        userPassword: [
	          { required: true, message: '請輸入新密碼', trigger: 'blur' },
	          { validator: validatePassword }
	        ],
      	},
	}
}

html部分

<el-form-item prop="userPassword">
  <span class="svg-container">
    <svg-icon icon-class="password" />
  </span>
  <el-input
    :key="passwordType"
    ref="userPassword"
    v-model="resetForm.userPassword"
    :type="passwordType"
    placeholder="請輸入新密碼"
    name="userPassword"
    tabindex="2"
    auto-complete="on"
    @blur="clearLevel"
  />
  <span class="el-form-item__error" ref="tip2" style="display:none;color:#666;">密碼安全等級:<span ref="level2"></span></span>
  <!-- @keyup.enter.native="handleLogin"<span class="show-pwd" @click="showPwd">
    <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" />
  </span> -->
</el-form-item>

原文鏈接:https://blog.csdn.net/qq_38157825/article/details/108009556

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新