用于验证当前DoD密码标准的正则表达式
Regular expression to validate current DoD Password Standards
这里有两个不同的还没有工作。
:
^[a-zA-Z0-9'{'}:;,.?'-=+|<>!@#$%^&()'[']'/'')]{15,}
2:
(?=^.{15,}$)(?=.*'d{2,})(?=.*'W+)(?![.'n])(?=.*[A-Z]{2,})(?=.*[a-z]{2,}).*$
规则:
密码长度至少为15个字符。
密码必须至少包含以下4个类别中的2个字符:
- 大写字母
A-Z
- 小写字母
a-z
- 数值
0-9
-
{}:;,.?-=+|<>!@#$%^&()[]/'
密码不能包含空格。
谢谢你的帮助。
----编辑----
2wsx@WSX3edc#EDC
3edc#EDC4rfv$RFV
nhy6NHY^mju7MJU&
1qaz!QAZ2wsx@WSX
我已经在http://www.gskinner.com/RegExr/测试了它们,我没有让它们工作。
我觉得下面的一些例子应该可以工作,但他们没有,或者我一定是做错了什么
要么一个接一个地检查这些正则表达式,要么从它们创建一个基于预看的大表达式。
规则:
- 密码长度至少为15个字符
密码必须至少包含以下4个类别中的2个字符:
- 大写字母顺序
- 小写字母
- 数字(0 - 9)
- 特殊字符(
{}:;,.?-=+|<>!@#$%^&()[]/
)
密码不能包含空格
为什么?但是如果必须,则将第一个表达式更改为
<>之前^ ' S {15} $为什么在一个正则表达式中?执行如下命令:
if( length($password) >= 15 &&
($password =~ y/A-Z//) >= 2 &&
($password =~ y/a-z//) >= 2 &&
($password =~ y/0-9//) >= 2 &&
($password =~ y/{}:;,.?'-=+|<>!@#%^&()'[']///) >= 2 &&
$password =~ /^'S+$/ ) {
print "password validates!'n";
} else {
print "password doesn't validate!'n";
}
这样当你需要添加更多的条件时,很容易做到。这也比把它们放在一个巨大的正则表达式中可读性和可维护性要高得多。
我找到了答案....JavaScript…谢谢你的帮助。
这个可以。
^((?=(.*['d]){2,})(?=(.*[a-z]){2,})(?=(.*[A-Z]){2,})(?=(.*[^'w'd's]){2,})).{15,}$
^(?!.* )(?=.{15})(?=.*[A-Z].*[A-Z])(?=.*[a-z].*[a-z])(?=.*[0-9].*[0-9])(?=.*[{}:;,.?'-=+|<>!@#$%'^&()[']/''].*[{}:;,.?'-=+|<>!@#$%'^&()[']/''])
我的Regex应该工作,即使分隔字符。例如Ab0%Ab0%0000000000000(您看,没有AA
,两个A
是分开的)。我已经转义了最小字符数(仅^
和]
)
-
^ Beginning of the string
-
(?!.* ) Not (any character repeated * times followed by a space)
-
(?=.{15}) Any character for 15 times (as it's written, even if there are other characters after the 15th it won't change anything)
-
(?=.*[A-Z].*[A-Z]) Any character repeated * times, an Upper Case letter, any character repeated * times, an Upper Case letter
-
(?=.*[a-z].*[a-z]) Any character repeated * times, a Lower Case letter, any character repeated * times, a Lower Case letter
-
(?=.*[0-9].*[0-9]) Any character repeated * times, a Digit, any character repeated * times, a Digit
-
(?=.*[{}:;,.?'-=+|<>!@#$%'^&()[']/''].*[{}:;,.?'-=+|<>!@#$%'^&()[']/'']) Any character repeated * times, a Symbol, any character repeated * times, a Symbol
所有子表达式都是零宽度超前查找(或零宽度负超前查找),并且它们都从第一个字符开始,因此它们都在"and"中,并且它们必须都为真。
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- 如何根据一定的标准在angularjs中使用正则表达式添加密码验证
- 应为']'在IE 8文档模式的正则表达式中:IE 8标准
- 为什么这个正则表达式不起作用,哪个符号更符合标准
- 需要与以下标准匹配的特定英国电话验证正则表达式
- 从表中的单个字段中找到不同的正则表达式模式的良好标准实践是什么?
- 用于验证当前DoD密码标准的正则表达式
- 使用正则表达式过滤掉不符合't不符合标准
- 不匹配特定非标准字符的十六进制或十进制代码的正则表达式