Regex 不带空格的密码验证正则表达式C#
密码必须至少包含8个符号 任意顺序至少2位数字 最小1个特殊字符(任意顺序)和 不能允许空白 我有这样的想法:Regex 不带空格的密码验证正则表达式C#,regex,Regex,密码必须至少包含8个符号 任意顺序至少2位数字 最小1个特殊字符(任意顺序)和 不能允许空白 我有这样的想法: (?=.*\d.*\d)(?=.*[$/@:?{~!^`\[\]]{1,}).{8,} UPD解决方案: (?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,} (?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,} 将其锚定到开始和结束,并对空白进行负面展望,我的建议如下
(?=.*\d.*\d)(?=.*[$/@:?{~!^`\[\]]{1,}).{8,}
UPD解决方案:
(?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,}
(?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,}
将其锚定到开始和结束,并对空白进行负面展望,我的建议如下:
^(?!\d+$)(?![$/@:?{~!^`\[\]]+$)[$/@:?{~!^`\[\]\d]{8,}$
注意:您需要找到另一种方法来检查至少两个数字,如果您的语言支持否定类,我会将
更改为\S
(?=\S*\d){2}(?=\S*[$/@:?{~!^`\[\]]){1,}\S{8,}
如果没有,则输入[^\s]
只需将其添加到现有的正则表达式中。一个负前瞻检测一个或多个空格。这里是另一个:
^(?=(?:.*\d){2}(?=.[$/@:?{!^`\[\]])\S{8,}$
正好是2位还是最少2位?对于特殊字符也是一样对不起,最少2位,更新的引用:可能重复@Chase,因为
\S{8,}
将检查空格,无需在lookaheads中使用\S
。也缺少^
和$
锚。
(?=[^\s]*\d){2}(?=[^\s]*[$/@:?{~!^`\[\]]){1,}[^\s]{8,}
(?!.*?\s+.*?)