html - 正则表达式验证问题
问题描述
我正在使用
^(?=^.{14,30}$)(?=^.[\d]{3}$)(?=^.[a-z]{4}$)(?=^.[A-Z]{5}$)(?=^.[!*&#$%^]{2}).$
正则表达式,以验证以下作为最低要求:
- 四个小写字母
- 五个大写字母
- 三位数
- 两个特殊字符
- 总长度在 14 到 30 个字符之间
但不幸的是,这个验证模式不能验证我的字符串。
我正在寻找regex
模式验证并告诉我模式是好的
有人可以给我一个支持吗?
解决方案
请注意,(?=^.[a-z]{4}$)
需要匹配 5 个字符的字符串,其中第一个 csn 是任何字符,然后必须有 4 个小写字母。最后, after^
和 lookaheads,有.
before $
,所以实际上,整个正则表达式可以匹配单个 char 字符串。
您可以使用
^(?=(?:\D*\d){3})(?=(?:[^a-z]*[a-z]){4})(?=(?:[^A-Z]*[A-Z]){5})(?=(?:[^!*&#$%^]*[!*&#$%^]){2}).{8,30}$
细节
^
- 字符串的开始(?=(?:\D*\d){3})
- 任何 0+ 非数字出现 3 次,后跟一个数字(?=(?:[^a-z]*[a-z]){4})
- 任何 0+ 字符出现四次,除了小写 ASCII 字母后跟小写 ASCII 字母(?=(?:[^A-Z]*[A-Z]){5})
- 任何 0+ 字符出现五次,除了大写 ASCII 字母后跟一个大写 ASCII 字母(?=(?:[^!*&#$%^]*[!*&#$%^]){2})
- 除了某些特定的特殊字符(在字符类中定义)之外,任何 0+ 字符出现两次,后跟来自 sepcified!*&#$%^
集中的字符.{8,30}
- 任何 8 到 30 个字符$
- 字符串结束。
推荐阅读
- css - 使用鼠标滚轮滚动不适用于 css 伪选择器。为什么?
- html - 构建自定义选择下拉 Html、Css
- android - 未找到 Android SDK - 但该文件夹存在
- python-3.x - 为什么 file.close() 会终止 Python 实例
- javascript - 代码以错误的顺序执行并且它不是异步的(我认为......)
- webrtc - 是否可以在同一个窗口中创建两个相互连接的 RTCPeerConnections?
- java - 在Java中将字节大小转换为人类可读的格式?
- angular - 比较相似的物体角度
- javascript - Javascript正则表达式量词:匹配零次或多次是什么意思
- html - 如何仅在移动视图上显示元素?