密码validation正则expression式
我想获得一个正则expression式,执行以下操作:
- 确保没有空白字符
- 最小长度为8
- 确保至less有:
- 一个非alpha字符
- 一个大写字符
- 一个小写字符
我发现这个正则expression式:
((?=.*[^a-zA-Z])(?=.*[az])(?=.*[AZ])(?!\s).{8,})
其中需要照顾上面的第2点和第3点,但我如何将第一个要求添加到上述正则expression式?
我知道我可以做两个expression式然后
\s
但是我想把它放在一个整体,我试着做一些像?!\s
东西,但是我却无法完成它的工作。 有任何想法吗?
^(?=.*[^a-zA-Z])(?=.*[az])(?=.*[AZ])\S{8,}$
应该做。 但请注意,您只是validationASCII字母。 是不是你的要求的信件?
\S
意思是“除空白以外的任何字符”,所以通过使用这个而不是点,并通过锚定在string的开始和结束的正则expression式,我们确保string不包含任何空格。
我还删除了整个expression式中不必要的括号。
Tim的答案效果很好,并且很好的提醒了用正则expression式解决同样的问题的方法有很多,但是你自己正在寻找解决scheme的正确方向。 如果你已经把(?!\ s)改成(?!。* \ s),并且把^和$ anchors添加到最后,它就会工作。
^((?=.*[^a-zA-Z])(?=.*[az])(?=.*[AZ])(?!.*\s).{8,})$