这个密码判断混合的正则是怎么写呀?
let pattern = /^[0-9]{6,20}|[a-zA-Z]{6,20}|[\S]{6,20}$/;
let pattern1 = /^([a-zA-Z]+[0-9]+){6,20}$/;//混合一个
let pattern2 = /^([a-zA-Z]+[0-9]+[\S]+){6,20}$/;//混合两个
这个括号分组好像不对但是要怎么限制他们的总数要到达到{6,20}呢。
就像let pattern1 = /^[a-zA-Z]+[0-9]{5,19}$/; //混合一个
是只能保证字母有一个,数字后面跟的量词是数字的要怎么把量词給到整体呢?
0
收起
正在回答 回答被采纳积分+1
3回答
离离钟
2018-11-30 10:05:35
把单独数字的,字母的,符号的全部写出来,这样有三个正则了,再将两两组合的正则全部写出来,就又有3个正则了,再加上数组字母符号都满足的1个正则,总共加起来有7个正则,这样分开判断。我下面只写了5种情况。
id('password').onblur = function() { var patternNum = /^\d{6,20}$/;//数字正则 var patternLetter = /^[a-z]{6,20}$/i;//字母正则 var patternSymbol = /^[^\da-z\s]{6,20}$/i;//符号正则 // 数字字母的正则,剩下两个字母符号,数字符号的正则我没写出来,意思是一样的 var patternNumLetter =/^[\da-z]{6,20}$/i; // 数字字母符号的正则 var patternNumLetterSymbol = /^\S{6,20}$/; if ( patternNum.exec( id('password').value ) || patternLetter.exec( id('password').value ) || patternSymbol.exec( id('password').value )) { //这里的判断是只满足其中一个正则的 id('passwordCue1').style.backgroundColor = "red"; id('passwordCue2').style.backgroundColor = "#ccc"; id('passwordCue3').style.backgroundColor = "#ccc"; totalCue[1] = true; } else if ( patternNumLetter.exec( id('password').value ) ) { //这里是满足两个的,剩下两个没写出来,可以自己写写看 id('passwordCue1').style.backgroundColor = "red"; totalCue[1] = true; id('passwordCue2').style.backgroundColor = "orange"; id('passwordCue3').style.backgroundColor = "#ccc"; } else if ( patternNumLetterSymbol.exec( id('password').value) ) { 这里是满足三个的 id('passwordCue1').style.backgroundColor = "red"; totalCue[1] = true; id('passwordCue2').style.backgroundColor = "orange"; id('passwordCue3').style.backgroundColor = "green"; } else { //这里是都不满足的 totalCue[1] = false; id('passwordCue1').style.backgroundColor = "#ccc"; id('passwordCue2').style.backgroundColor = "#ccc"; id('passwordCue3').style.backgroundColor = "#ccc"; } }
仅供参考。
_是你_
2018-11-20 11:18:52
我是这样写的:
开始先判断数量:
var patt = /\S{6,20}/;
判断完数量之后判断内容:
一个
/^[1-9]{6,20}$/.test(value) || /^[a-zA-Z]{6,20}$/.test(value) || /^\W{6,20}$/.test(value)
两个
/^[1-9|a-z]{6,20}$/i.test(value)||/^[\W|a-z]{6,20}$/i.test(value)||/^[\W|1-9]{6,20}$/i.test(value)
三个
/\W[a-zA-Z]*/.test(value)
你可以试试。
相似问题
登录后可查看更多问答,登录/注册
组件化思想开发电商网页 18版
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星