vue2密码正则

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: '不可为空' }
        ]
      },

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js 是一个流行的 JavaScript 框架, 用于构建用户界面。要在 Vue.js 中使用正则表达式验证密码强度,可以在组件中使用 `v-model` 指令绑定密码输入框的值,并在计算属性或方法中编写正则表达式来验证密码。 下面是一个简单的示例代码,演示了如何在 Vue.js 中使用正则表达式验证密码强度: ```html <template> <div> <input type="password" v-model="password" placeholder="Enter password"> <button @click="validatePassword">Validate</button> </div> </template> <script> export default { data() { return { password: '' }; }, methods: { validatePassword() { // 正则表达式模式 - 至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,长度为6-20个字符 const pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,20}$/; if (pattern.test(this.password)) { alert('密码强度符合要求!'); } else { alert('密码强度不符合要求!'); } } } }; </script> ``` 在上述代码中,我们使用 `v-model` 指令将密码输入框的值绑定到 Vue 实例的 `password` 属性上。然后,我们在 `validatePassword` 方法中使用正则表达式模式来验证密码强度。如果密码符合要求,就弹出一个成功的提示框;否则,弹出一个错误的提示框。 这只是一个简单的示例,可以根据实际需求调整正则表达式模式和验证逻辑。请记住,在客户端验证密码强度只是一种基本的验证方法,服务器端验证也是必不可少的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值