密码正则表达式验证
本文关键字:验证 正则表达式 密码 | 更新日期: 2023-09-27 18:35:40
这些是要求,但我想这对我的正则表达式技能来说太复杂了......
介于 6 到 10 个字母数字字符之间
.允许 A-Z,a-z,0-9,@,$,_
.必须以字母
开头.必须至少包含一个数字
.不能包含两个连续的相同字符
.不能包含两个连续的相同数字
我知道正则表达式的基本知识,例如[A-Za-Z] = 仅字符等...但是当涉及到连续的角色和东西时...
试试这个
((?=.*'d)(?=.*[a-z])(?=.*[A-Z])(?=.*['W]).{6,20})
上述正则表达式说明:
( # Start of group
(?=.*'d) # must contains one digit from 0-9
(?=.*[a-z]) # must contains one lowercase characters
(?=.*[A-Z]) # must contains one uppercase characters
(?=.*['W]) # must contains at least one special character
. # match anything with previous condition checking
{6,20} # length at least 6 characters and maximum of 20
) # End of group
"/W"将增加可用于密码的字符范围,并且 PIT 可以更安全。
string pattern1 = @"^[a-zA-Z]([a-zA-Z])*"; //start and any number of characters
string pattern2 = @"[0-9]+"; //one number or more numbers
string pattern3 = @"[@#$%]*"; // special symbol allowed
string pattern4 = @"(.)'1";//consecutive characters
string pattern5 = @"^(.){6,10}$"; //min max
如果您想验证密码,您可以使用组来执行此操作;
(?<a>[a-zA-Z])?(?<b>[0-9])?(?<c>[@%$#/'''(')])?
将为您提供 3 组(a、b 和 c)中的任何一组的匹配项
向上和向下字符将属于 A 组
数字字符将位于 B 组中
特殊字符将在C组中
您可以使用 regex.match.groups("a").count 查看是否可以找到组 A 中的任何字符
如果您在所有 3 个组中找到字符,则密码为强密码。