求密码验证 三、 密码规则:符合下列条件之中的前二个及至少三个:

javalead 2009-03-12 10:24:49
密码规则:符合下列条件之中的前二个及至少三个:
a) 6至12个字符
b) 不与用户名一致,不可为'123456'、'abcdef'或6个相同字符
c) 包含大写字母(A、B、C等)
d) 饱含小写字母(a、b、c等)
e) 包含数字(0、1、2等)
f) 包含非字母数字字符(#、&、~等)

要用这个规则做密码校验,想问问大家能不能正则表达式验证一下,我对正则表达式不了解,期待高手帮租解决.急
...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sebatinsky 2009-03-12
  • 打赏
  • 举报
回复
呵呵,对啊,你写一个条件啊,正则表达式你不用动全部,只是复杂一点而已,你知道判断小写吧,判断大写吧,判断长度和简单程度.

密码规则:符合下列条件之中的前二个及至少三个:
a) 6至12个字符
b) 不与用户名一致,不可为'123456'、'abcdef'或6个相同字符
c) 包含大写字母(A、B、C等)
d) 饱含小写字母(a、b、c等)
e) 包含数字(0、1、2等)
f) 包含非字母数字字符(#、&、~等)

前两个条件可直接写条件吧,这个就直接有了,两个条件好判断,
后面的,大小写数字一个条件.其实很好写,下面是引用的上面那位仁兄的,起始你需要的是过程思想,而不是正则,你想,你就是判断条件而已,而写语句是简单的.只是你咬着几个条件而已,你可以用一个整数来判断控制它满足几个条件,初始化0,满足一个++,是否到最后是4或者是你的要求,

^\d+$  //匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$  //匹配正整数
^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$  //匹配负整数
^-?\d+$    //匹配整数
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址
^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url
[\u4e00-\u9fa5] 匹配中文字符的正则表达式
[^\x00-\xff] 匹配双字节字符(包括汉字在内)
<(.*)>.* <\/>| <(.*) \/> 匹配HTML标记的正则表达式
(\d{3}-|\d{4}-)?(\d{8}|\d{7})? 匹配国内电话号码
niuxinlong 2009-03-12
  • 打赏
  • 举报
回复
恐怕得分开做了,一个正则似乎哪一实现啊
javalead 2009-03-12
  • 打赏
  • 举报
回复
a和b必须满足,cdef四个满足其中三个就可以了.能解决吗?
xyj19870821 2009-03-12
  • 打赏
  • 举报
回复

^\d+$  //匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$  //匹配正整数
^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$  //匹配负整数
^-?\d+$    //匹配整数
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址
^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url
[\u4e00-\u9fa5] 匹配中文字符的正则表达式
[^\x00-\xff] 匹配双字节字符(包括汉字在内)
<(.*)>.*<\/>|<(.*) \/> 匹配HTML标记的正则表达式
(\d{3}-|\d{4}-)?(\d{8}|\d{7})? 匹配国内电话号码
  • 打赏
  • 举报
回复
带有逻辑判断“符合下列条件之中的前二个及至少三个”,这个排列组合会很多,正则表达式实现不了。
  • 打赏
  • 举报
回复
f) 包含非字母数字字符(#、&、~等)

需求不明确,没办法写正则表达式。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧