需要一个包含一个大写字母,长度为8-25个字符且包含一个特殊字符(不包括#
和&
)的正则表达式。这就是我所拥有的:
/^(?=.*[A-Z])(?=.*[^0-9a-zA-Z]).{8,25}$/
如果字符串包含#
或&
,那么我需要添加什么才能使正则表达式不接受该字符串?
答案 0 :(得分:4)
简单地:
/^(?=.*[A-Z])(?=.*[^0-9a-zA-Z])[^#&]{8,25}$/
说明:
(?=.*[A-Z])
表示只有当有0-n个字符后跟一个大写字母才能成功匹配。
(?=.*[^0-9a-zA-Z])
表示只有当有0-n个字符,然后是不是0-9,a-z或A-Z的字符时,匹配才会成功。
[^#&]{8,25}
表示主匹配必须包含8-25个字符,其中任何一个都不能是#
或&
答案 1 :(得分:1)
.
将匹配除换行符之外的任何字符;将其替换为[^#&]
:
/^(?=.*[A-Z])(?=.*[^0-9a-zA-Z])[^#&]{8,25}$/