js正则表达式:急,急,求大牛写一个密码组合验证

十点摆码 2016-06-12 10:11:31
要求:满足6-10位数字必须包含特殊字符“-”、“_”组合,或者6-10位字母必须包含特殊字符“-”、“_”组合,或者6-10位数字,字母包含特殊字符“-”、“_”组合!
长度是6-10位,这三个条件满足一个就是合法,满足不了任意一个就是不合法,谢谢。
...全文
274 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cocotsau 2016-06-13
  • 打赏
  • 举报
回复
楼上写错了,要改成: if (/^[[A-Za-z\d-_]{6,10}$/.test(txt.value) && /[-_]+/.test(txt.value) && /[[A-Za-z\d]+/.test(txt.value)) { //do work }
cocotsau 2016-06-13
  • 打赏
  • 举报
回复
引用 9 楼 thy442030800 的回复:
所以没必要写这么麻烦,用两个正则判断就行了: if(/^[A-z\d-_]{6,10}$/.test(str) && /-_/.test(str)){ // do work }
后面这部分: /-_/.test(str)是不对的,要求- _组合,没有前后顺序关系。另外必须包含字母或数字。例如:“aaaa_-" 通过,而" -----_" 不通过。最后[A-z]不等价与[A-Za-z],查ASCII表可以发现它们大小写字母中间还有几个特殊字符[ \ ] ^ _ ' 可以改写成: if (/^[A-z\d-_]{6,10}$/.test(txt.value) && /[-_]+/.test(txt.value) && /[A-z\d]+/.test(txt.value)) { //do work }
thy442030800 2016-06-13
  • 打赏
  • 举报
回复
引用 7 楼 perhapschen 的回复:
明白了,必须包含某个字符的话,正则写起来就比较麻烦了,可以结合零宽断言来判断

/^(?![0-9a-zA-Z]+$)(?![-_]+$)[\w-]{6,10}$/

(?![0-9a-zA-Z]+$)//去除不包含"-"或"_"的情况

(?![-_]+$)//去除全为"-"或"_"的情况
以上就是我的理解,如果有更好的办法,欢迎提出来
所以没必要写这么麻烦,用两个正则判断就行了: if(/^[A-z\d-_]{6,10}$/.test(str) && /-_/.test(str)){ // do work }
KK3K2005 2016-06-13
  • 打赏
  • 举报
回复
你说这么长 总结下: 长度 6-10, 内容 (数字,字母,“-”,“_”) 或 (数字,“-”,“_”) 或 (字母,“-”,“_”) 后面自己转换正则
functionsub 2016-06-12
  • 打赏
  • 举报
回复
/[\w-]{6-10}/
cocotsau 2016-06-12
  • 打赏
  • 举报
回复
明白了,必须包含某个字符的话,正则写起来就比较麻烦了,可以结合零宽断言来判断

/^(?![0-9a-zA-Z]+$)(?![-_]+$)[\w-]{6,10}$/

(?![0-9a-zA-Z]+$)//去除不包含"-"或"_"的情况

(?![-_]+$)//去除全为"-"或"_"的情况
以上就是我的理解,如果有更好的办法,欢迎提出来
十点摆码 2016-06-12
  • 打赏
  • 举报
回复
要求:满足6-10位数字必须包含特殊字符“-”、“_”组合,或者6-10位字母必须包含特殊字符“-”、“_”组合,或者6-10位数字,字母包含特殊字符“-”、“_”组合! 长度是6-10位,这三个条件满足一个就是合法,满足不了任意一个就是不合法,谢谢。 比如:majun- 或者 12345_ 或者 ma123- 特殊字符必须包含,意思就是要么字母加字符,要么是数字加字符,要么就是字母、数字加字符 满足任意一个就合法,否则不合法
cocotsau 2016-06-12
  • 打赏
  • 举报
回复
楼主,我感觉1楼的正则符合你描述的要求。 最好可以举个例子,为什么不符合?好分析解决
thy442030800 2016-06-12
  • 打赏
  • 举报
回复
错了,后面一个需要改成/[-_]/

加个中括号
thy442030800 2016-06-12
  • 打赏
  • 举报
回复
好久没来CSDN瞅瞅了,第一眼看到了楼主的帖子,顺手给你写了个: ^[A-z\d-_]{6,10}$ 鉴于你的-_是必填项,所以建议你这么写: if(/^[A-z\d-_]{6,10}$/.test(你的字符串) && /-_/.test(你的字符串)){ // 你的业务逻辑 } 因为-_是必填,全部写到一个正则要写太多分支条件,太麻烦,没必要
十点摆码 2016-06-12
  • 打赏
  • 举报
回复
不对,亲,没有这么简单,你在理解一下。

87,984

社区成员

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

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