我写了一个RegEx for password,它接受最小长度为5,最大长度为30的任何字符。
我尝试过以下表达式:
(\S){5,30}
但它也接受超过30个字符的密码。如何确保它与此类密码不匹配?
答案 0 :(得分:6)
您的问题是您的正则表达式还匹配您输入的子字符串。
\S{5}
(或(\S){5}
)匹配字符串12345
中的1234567890
。
所以你需要锚定你的正则表达式:
^\S{5,30}$
验证一个5-30个字符的非空白字符串。 \S
周围的括号没用,也没用。
无论如何,为什么要对密码施加长度限制?为什么你不允许空格字符呢?另请参阅this。
答案 1 :(得分:0)
如果你真的想要“任何角色”,请使用句号(.
)代替\S
。