[英]Regex not allowed Capital letter followed by lower case letters followed by number followed by special character
正则表达式需要匹配以下格式
不允许连续超过两个相同的字符
但是我们不想遵循下面的特定 Patten(首字母大写,后跟数字,后跟特殊字符-(例如,Fall2015!))表示大写后跟小写后跟数字后跟特殊字符
(?=.{8,24}$)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_.!@$*=-?#])(([A-Za-z0-9_.!@$*=-?#])\2?(?!\2))
看起来以下应该勾选您的框:
^(?![A-Z][a-z]+\d+[.!@$*=?#-]$|.*(.)\1\1)(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[.!@$*=?#-]).{8,24}$
查看在线演示
^
- 开始字符串锚。(?!
- 对以下内容的负面预测:
[AZ][az]+\d+[.?@$*=?#-]$
- 你想要取反的文字模式:一个大写字母、1+ 个小写字母、1+ 个数字和字符串结束前的特殊字符.|
- 或者:.*(.)\1\1
- 断言 position 没有以下三个相同字符的序列:0+ 个字符、第一个捕获组和对该组的两个直接反向引用。)
- 关闭负前瞻。(?=.*[AZ])
- 在字符串中断言大写字母的正向前瞻。(?=.*[az])
- 在字符串中断言小写字母的正向前瞻。(?=.*\d)
- 在字符串中断言数字的正向前瞻。(?=.*[.?@$*=?#-])
- 正向预测以断言字符串中的特殊字符。.{8,24}
- 除换行符以外的任何 8-24 个字符。$
- 结束字符串锚。尝试这个:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_.!@$*=?#-])(?!.*(.)\1\1)(?!.*[A-Z][a-z]+\d+[_.!@$*=?#-])[\w.!@$*=?#-]{8,24}$
主要变化是:
^
锚定表达式开始(?..*(.)\1\1)
防止三倍字符(?..*[AZ][az]+\d+[_?!@$*=?#-])
以防止像“Fall2015!”这样的输入[\w.?@$*=,#-]{8,24}$
将输入限制为仅这些字符且仅 8-24 长度 还要注意引入\d
作为[0-9]
的简写和\w
作为[a-zA-Z0-9_]
简写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.