为了账号安全,请及时绑定邮箱和手机立即绑定

RegEx以确保该字符串包含至少一个小写字母char,大写字母char,数字和符号

RegEx以确保该字符串包含至少一个小写字母char,大写字母char,数字和符号

繁华开满天机 2019-07-25 19:50:19
RegEx以确保该字符串包含至少一个小写字母char,大写字母char,数字和符号什么是正则表达式以确保给定字符串包含来自以下每个类别的至少一个字符。小写字符大写字母数字符号我知道各组分别是模式[a-z],[A-Z],\d和_|[^\w](我让他们正确的,不是吗?)。但是我如何组合它们以确保字符串以任何顺序包含所有这些?
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

如果您需要一个正则表达式,请尝试:


(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\W)

一个简短的解释:


(?=.*[a-z])        // use positive look ahead to see if at least one lower case letter exists

(?=.*[A-Z])        // use positive look ahead to see if at least one upper case letter exists

(?=.*\d)           // use positive look ahead to see if at least one digit exists

(?=.*\W])        // use positive look ahead to see if at least one non-word character exists

我同意SilentGhost,\W可能有点宽泛。我用这样的字符集替换它:( [-+_!@#$%^&*.,?]当然可以添加更多!)


查看完整回答
反对 回复 2019-07-25
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

Bart Kiers,你的正则表达式有几个问题。最好的方法是:


(.*[a-z].*)       // For lower cases

(.*[A-Z].*)       // For upper cases

(.*\d.*)          // For digits

无论是在开头,结尾还是在中间,你都会以这种方式进行搜索。你有我复杂的密码有很多麻烦。


查看完整回答
反对 回复 2019-07-25
?
绝地无双

TA贡献1946条经验 获得超4个赞

您可以分别匹配这三个组,并确保它们都存在。此外,[^\w]似乎有点过于宽泛,但如果这是你想要的,你可能想要替换它\W


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 602 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信