正则校验密码问题
实现包含3位及以上的数字字母密码,不允许为连续/重复的数字或字母,包括正序和倒序,例如:Abc.123、Aaaa@123、Zyx@321
使用正则校验密码正则好像不能校验,用程序写没啥思路
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;}
这种就别用正则了, 老老实实用程序判断吧.
正则表达式确实可以用于密码校验,但要实现包含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})
确保没有正序或倒序的三个相同字符(例如 123
或 321
)[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密码强度校验的全部代码,希望对大家的学习有所帮助。