今天领导让我写几个正则表达式来对密码做强度验证,听到写正则表达式内心是这样的感觉(哈哈,三分钟搞定,今天又可以打鱼了)。需求如下:密码组成只能是数字,字母,英文可见半角符号,然后需要如下4个表达式:
看完需求我就有点懵了,包含数字或者字母我会写,但是同时存在还要在一个表达式中就有点懵了。
以第三种为例,这个可以分解为如下需求:
关键是如何同时满足前三个条件,在我有限的知识里并不知道怎么搞,然后只好求助于万能的百度了,最终在找了几个小时后发现如下几个关键词,来源菜鸟教程 :
有了上面的知识就能搞定需求啦。
对于存在字母我们可以用这样的表达式`(?=.*?[a-zA-Z]+.*?),来检查是否存在至少一个字母,最后对于需求3的表达式如下:(半角字符我用的ASCII码里的16进制表示的)
^(?=.*?\d+.*?)(?=.*?[a-zA-Z]+.*?)(?=.*?[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+.*?)[\da-zA-Z\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]{6,}$