正则表达式的字符串不能包含#或&

时间:2014-05-23 20:10:02

标签: javascript regex

需要一个包含一个大写字母,长度为8-25个字符且包含一个特殊字符(不包括#&)的正则表达式。这就是我所拥有的:

/^(?=.*[A-Z])(?=.*[^0-9a-zA-Z]).{8,25}$/

如果字符串包含#&,那么我需要添加什么才能使正则表达式不接受该字符串?

2 个答案:

答案 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}$/