我需要编写REGEX以允许(以任何顺序)仅包含字母,数字和少数特殊符号(空格,连字符,&
等),但至少包含2个字母,并禁止任何其他特殊符号。
现在,我有这个:
\A^(?=.*[a-zA-Z]{2,})(?=.*[0-9]*).*+$\z
但它几乎接受所有特殊符号。我怎样才能改进它?感谢。
答案 0 :(得分:1)
您可以根据您的要求使用此正则表达式:
\A(?=(?:[^a-zA-Z]*[a-zA-Z]){2})[a-zA-Z0-9\s&-]+\z
RegEx分手:
\A
:开始(?=(?:[^a-zA-Z]*[a-zA-Z]){2})
:预测我们在输入中至少有2个字母[a-zA-Z0-9\s&-]+
:匹配字母数字字符或空格或&
或-
\z
:结束