当前位置: 首页 > 知识库问答 >
问题:

javascript - 正则校验密码问题?

慎俊雄
2024-03-18

正则校验密码问题
实现包含3位及以上的数字字母密码,不允许为连续/重复的数字或字母,包括正序和倒序,例如:Abc.123、Aaaa@123、Zyx@321

使用正则校验密码正则好像不能校验,用程序写没啥思路

共有3个答案

慕容星晖
2024-03-18
function checkPassword(password) {        const isDigitOrLetter = (char) => {        return /[a-zA-Z0-9]/.test(char);    }    // 检查密码中是否包含至少3位数字或字母    let digitOrLetterCount = 0;    for (let i = 0; i < password.length; i++) {        if (isDigitOrLetter(password[i])) {            digitOrLetterCount++;        }    }    if (digitOrLetterCount < 3) {        return false;    }    // 检查密码中是否包含连续或重复的数字或字母(包括正序和倒序)    for (let i = 0; i < password.length - 2; i++) {        if (isDigitOrLetter(password[i]) && isDigitOrLetter(password[i + 1]) && isDigitOrLetter(password[i + 2])) {            let charCode1 = password.charCodeAt(i);            let charCode2 = password.charCodeAt(i + 1);            let charCode3 = password.charCodeAt(i + 2);            // 检查是否连续            if (charCode2 === charCode1 + 1 && charCode3 === charCode1 + 2) {                return false;            }            if (charCode2 === charCode1 - 1 && charCode3 === charCode1 - 2) {                return false;            }            // 检查是否重复            if (password[i] === password[i + 1] && password[i] === password[i + 2]) {                return false;            }        }    }    return true;}
公孙芷阳
2024-03-18

这种就别用正则了, 老老实实用程序判断吧.

谭京
2024-03-18

正则表达式确实可以用于密码校验,但要实现包含3位及以上的数字字母密码,同时不允许连续/重复的数字或字母(包括正序和倒序)的功能,正则表达式可能会变得相当复杂,并且不一定能够完全满足所有要求。

下面是一个尝试满足这些要求的正则表达式示例:

^(?![a-zA-Z]+$)(?![0-9]+$)(?!(.)\1{2})(?!(.)(?!\1)(.)\3{2})[a-zA-Z0-9]{3,}$

这个正则表达式的含义如下:

  • ^ 表示字符串的开始
  • (?![a-zA-Z]+$) 确保密码不是全字母
  • (?![0-9]+$) 确保密码不是全数字
  • (?!(.)\1{2}) 确保没有连续三个相同的字符
  • (?!(.)(?!\1)(.)\3{2}) 确保没有正序或倒序的三个相同字符(例如 123321
  • [a-zA-Z0-9]{3,} 确保密码至少包含3个字母或数字
  • $ 表示字符串的结束

请注意,这个正则表达式并不完美,它可能无法处理所有可能的边缘情况。例如,它可能无法处理包含特殊字符的密码,或者处理包含多个连续/重复字符的复杂情况。

在实际应用中,更好的做法可能是使用正则表达式进行基本的格式校验,然后使用编程语言中的逻辑代码来检查密码是否满足其他要求。这样可以更容易地处理更复杂的规则和边缘情况。

如果你希望使用正则表达式和编程语言结合的方式来实现密码校验,我可以为你提供更详细的代码示例。

 类似资料:
  • 本文向大家介绍Javascript校验密码复杂度的正则表达式,包括了Javascript校验密码复杂度的正则表达式的使用技巧和注意事项,需要的朋友参考一下 目前使用的正则表达式如下: 对应的验证规则是:密码中必须包含字母、数字、特称字符,至少8个字符,最多30个字符。 这个正则表达式在C#可以正常使用,但是在Javascript中却有问题。 请问是在js中如何写这样的正则表达式? 测试字符串:a1

  • 本文向大家介绍手机号码,密码正则验证,包括了手机号码,密码正则验证的使用技巧和注意事项,需要的朋友参考一下  /**      * 手机号码      * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188      * 联通:130,131,132,152,155,156,185,186      * 电信:133,13

  • 本文向大家介绍JavaScript正则表达式校验非正整数实例,包括了JavaScript正则表达式校验非正整数实例的使用技巧和注意事项,需要的朋友参考一下 话不多说,跟小编一起来看看吧 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 本文向大家介绍javascript密码强度校验代码(两种方法),包括了javascript密码强度校验代码(两种方法)的使用技巧和注意事项,需要的朋友参考一下 先看效果图: javascript密码强度校验代码,具体实现思路不多说了,请看下面代码和demo。 第一种方法: demo 第二种方法: javascript代码如下: 以上通过两种方法介绍了javascript密码强度校验代码,希望对大家

  • 本文向大家介绍jquery密码强度校验,包括了jquery密码强度校验的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery密码强度校验的验证代码,分享给大家供大家参考。具体如下: 预想的效果截图如下: 关键代码: 以上就是jquery判断密码强度校验代码,大家可以应用到自己的项目中,希望大家喜欢。

  • 本文向大家介绍js密码强度校验,包括了js密码强度校验的使用技巧和注意事项,需要的朋友参考一下 现在很多论坛和博客都在用户注册时添加了验证密码强度的功能,在以前的文章中,我们曾经给出过一段检验密码强度的例子,今天再看一个与《js密码强度校验》的代码。 效果: 以上就是为大家分享的js密码强度校验的全部代码,希望对大家的学习有所帮助。