当前位置:编程学习 > JAVA >>

面试题请教

密码以字母开头长度不少于8个字符,并且必须符合复杂性要求。
密码至少包含以下四种类别的字符中的三种:
英语大写字母 A, B, C, … Z 
英语小写字母 a, b, c, … z 
西方阿拉伯数字 0, 1, 2, … 9 
非字母数字字符,如标点符号,@, #, $, %, &, *等

请写出满足条件的正则表达式


本人想了半天想不出来,请高手指点 --------------------编程问答-------------------- 写个程序判断不行么 返回提示难道都是 密码格式不对 --------------------编程问答-------------------- 正则表达式一句就能搞定?是Java的还是其他语言也可以? --------------------编程问答-------------------- 好高深,我是初学者 --------------------编程问答--------------------
引用 2 楼 runffer_yang 的回复:
正则表达式一句就能搞定?是Java的还是其他语言也可以?


用JAVA有没有比较方便的判断出最后一个条件(非字母数字字符,如标点符号,@, #, $, %, &, *等)呢? --------------------编程问答-------------------- 第一感觉这种情况用正则要死人
不如写几行判断简洁明了
效率也不见得会低
web的话
页面就js判断了
javascript执行相当快的说 --------------------编程问答-------------------- 这样行么 


^[a-zA-Z]{1}[(\\p{Punct})||(\\w)]{7,}
--------------------编程问答--------------------
引用 2 楼 runffer_yang 的回复:
正则表达式一句就能搞定?是Java的还是其他语言也可以?

JS确实可以一句话搞定,而且是在客服端搞定,而不是在服务器端! --------------------编程问答--------------------
引用 6 楼 pl3121605999 的回复:
这样行么   


^[a-zA-Z]{1}[(\\p{Punct})||(\\w)]{7,}


这个基友的方法赞同,楼主这种类型的判断用正则是最方便的。 --------------------编程问答--------------------
引用 6 楼 pl3121605999 的回复:
这样行么   


^[a-zA-Z]{1}[(\\p{Punct})||(\\w)]{7,}


感觉不能符合楼主"密码至少包含以下四种类别的字符中的三种:"的要求 --------------------编程问答-------------------- 用 javascript 实现吧。 --------------------编程问答-------------------- 目前想到的方法就是 第一个字符规定是 \p{Alpha} 后面就把 \p{Upper} \p{Lower} \p{Digit} \p{Punct} 按照顺序排出来,即 大写后接小写接数字 或 大写后接数字接小写 或 大写后接符号接数字 或。。。
不过这样的话,大概是列举出4X3X2种情况,即使考虑到 字母接数字接符号之类的情况,大概也要列出18种左右的情况,够麻烦的了。 --------------------编程问答--------------------
好晕呢 正则... --------------------编程问答-------------------- 不知道是哪个2B公司出的题,说下公司名,死也不去那公司面试,没听过哪个公司面试要求写多这种正则表达式的。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,