我正在尝试使用以下限制创建正则表达式,但也许我遗漏了一些东西,因为它会产生错误的输出。
限制:
1)字符串不应仅包含数字
2)字符串不应包含3个以上的特殊字符
3)String没有任何长度超过10个字符的单词(substring)
4)字符串长度必须为3或更大
我创建了一个解决第一点的正则表达式:
/^\d*[a-zA-Z][a-zA-Z\d]*$/
但是我没有添加其他限制2-4。
答案 0 :(得分:0)
您可以使用像
这样的正则表达式^(?!\d+$)(?!(?:[^$&%@]*[$&%@]){4})(?!.*\b\w{11}).{3,}$
请参阅regex demo
模式分解:
^
- 字符串开头(?!\d+$)
- 不得只有数字(\d+
)到字符串末尾($
)(?!(?:[^$&%@]*[$&%@]){4})
- 一定不能有4个0+非特殊字符序列([^$&%@]*
),后跟一个特殊字符(?!.*\b\w{11})
- 在字边界(\w{11}
)\b
)
.{3,}
- 3 +任何字符$
- 字符串结尾