栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java用于密码验证的Regexp Java

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java用于密码验证的Regexp Java

尝试这个:

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=S+$).{8,}$

说明:

^      # start-of-string(?=.*[0-9])       # a digit must occur at least once(?=.*[a-z])       # a lower case letter must occur at least once(?=.*[A-Z])       # an upper case letter must occur at least once(?=.*[@#$%^&+=])  # a special character must occur at least once(?=S+$)          # no whitespace allowed in the entire string.{8,}  # anything, at least eight places though$      # end-of-string

由于每个规则都是独立的“模块”,因此添加,修改或删除单个规则很容易。

所述

(?=.*[xyz])
构建体吃整个字符串
(.*)
和回溯到第一次出现在那里
[xyz]
可以匹配。如果
[xyz]
找到则成功,否则失败。

另一种选择是使用一个勉强的限定词:

(?=.*?[xyz])
。对于密码检查,这几乎没有什么区别,对于更长的字符串,这可能是更有效的变体。

当然,最有效的变体(但最难读取和维护,因此最容易出错)

(?=[^xyz]*[xyz])
。对于这种长度的正则表达式,并为此目的,我不建议这样做,因为它没有实际好处。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号