//(?=.x)必须有x。例:必须有数字——(?=.\d),以此类推。
//(?!.x)不能有x。例:不能有数字——(?!.\d),以此类推。
//(?!x+KaTeX parse error: Undefined control sequence: \d at position 25: …符。例:不能全是数字——(?!\̲d̲+),以此类推。
密码验证
//只能由1种组成
//只能由字母组成,1-9位
let reg1 = /^[a-zA-Z]{1,9}$/
console.log(reg1.test('abfdefs'), 'reg1')//true
console.log(reg1.test('abfdef2s'), 'reg1')//false
//只能由数字组成,1-9位
let reg2 = /^\d{1,9}$/
console.log(reg2.test('123456782'), 'reg2')//true
console.log(reg2.test('1234568s'), 'reg2')//false
//只能由特殊字符组成,1-9位
let reg3 = /^[^\da-zA-Z\s]{1,9}$/
console.log(reg3.test('werer3334'), 'reg3')//false
console.log(reg3.test('_____#$%^'), 'reg3')//true
//2种
//只能由字母、数字组成,1-9位
let reg4 = /^(?=.*\d)(?=.*[A-z])[\da-zA-Z]{1,9}$/
console.log(reg4.test('jkddf_32'), 'reg4')//false
console.log(reg4.test('jkkkf123'), 'reg4')//true
//只能由字母、特殊字符组成,1-9位
let reg5 = /^(?=.*[a-zA-Z])(?=.*[^\da-zA-Z\s])([a-zA-Z]|[^\da-zA-Z\s]){1,9}$/
console.log(reg5.test('*&&*****'), 'reg5')//false
console.log(reg5.test('abjjjjjjj'), 'reg5')//false
console.log(reg5.test('abjjjjj*&'), 'reg5')//true
console.log(reg5.test('*bjjjjj*&'), 'reg5')//true
console.log(reg5.test('***&&df3'), 'reg5')//false
//只能由数字、特殊字符组成,1-9位
let reg6 = /^(?=.*\d)(?=.*[^\da-zA-Z\s])(\d|[^\da-zA-Z\s]){1,9}$/
console.log(reg6.test('1233333'), 'reg6')//false
console.log(reg6.test('******'), 'reg6')//false
console.log(reg6.test('*((23))'), 'reg6')//true
console.log(reg6.test('123333d3'), 'reg6')//false
//至少包含2种
//至少包含字母、数字,1-9位
// let reg7 = /^(?=.*[a-zA-Z])(?=.*\d)[/da-zA-Z]{1,9}$/
let reg7 = /^(?=.*[a-zA-Z])(?=.*\d).{1,9}$/
console.log(reg7.test('43434d*3'), 'reg7')//true
console.log(reg7.test('434343'), 'reg7')//false
console.log(reg7.test('*(((())))'), 'reg7')//false
//至少包含字母、特殊字符,1-9位
let reg8 = /^(?=.*[a-zA-Z])(?=.*[^\da-zA-Z\s]).{1,9}/
console.log(reg8.test('ererer*'), 'reg8')//true
console.log(reg8.test('ererer'), 'reg8')//false
console.log(reg8.test('***'), 'reg8')//true
console.log(reg8.test('**df3*'), 'reg8')//false
//至少包含数字、特殊字符,1-9位
let reg9 = /^(?=.*\d)(?=.*[^\da-zA-Z\s]).{1,9}$/
console.log(reg8.test('232312'), 'reg8')
console.log(reg8.test('232(e2*'), 'reg8')
console.log(reg8.test('***'), 'reg8')
console.log(reg8.test('23231*e2'), 'reg8')
//任意2种组成
//由字母、数字、特殊字符,任意2种组成,1-9位
let reg10 = /^(?![a-zA-Z]+$)(?!\d+$)(?![^\da-zA-Z\s]+$).{1,9}$/
console.log(reg10.test('123.'),'reg10')//true
console.log(reg10.test('1232w'),'reg10')//true
console.log(reg10.test('123'),'reg10')//false
console.log(reg10.test('123s*3'),'reg10')//true
console.log(reg10.test('wwww'),'reg10')//false
console.log(reg10.test('******'),'reg10')//false
// 3种
//至少包含字母、数字、特殊字符,1-9位
let reg11 = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[^\da-zA-Z\s]).{1,9}$/
console.log(reg11.test('232w'),'reg11')//false
console.log(reg11.test('232*'),'reg11')//false
console.log(reg11.test('232*w'),'reg11')//true
//至少包含字母、数字、特殊字符,1-9位,并且不能连续出现3个大小连续或相同的数字(如:456、654、888)
let reg12 = /^(?=.*\d)(?!.*(\d)\1{2})(?!.*(012|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210))(?=.*[a-zA-Z])(?=.*[^\da-zA-Z\s]).{1,9}$/
console.log(reg12.test('123*f'),'reg12')//false
console.log(reg12.test('444*f'),'reg12')//false
console.log(reg12.test('123*f'),'reg12')//false
console.log(reg12.test('123*ef'),'reg12')//false
console.log(reg12.test('103*ef'),'reg12')//true
邮箱验证
// 非下划线的单词字符 + 2个以上单词字符 + @ + 2位以上单词字符域名 + .2位以上小写字母做域名后缀 + (.2位以上二重域名后缀)?
// var reg = /^(用户名)@(组织名)\.(一级域名后缀)(二级域名后缀)?$/
let reg13 =/^([a-zA-Z\d][\w-]{2,})@(\w{2,})\.([a-z]{2,})(\.[a-z]{2,})?$/
手机号验证
let reg14 = /^[1][3,4,5,7,8][0-9]{9}$/
console.log(reg14.test('123333333323'),'reg14')//false
console.log(reg14.test('17667777721'),'reg14')//true
console.log(reg14.test('18888888888'),'reg14')//true
let reg15 = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
console.log(reg15.test('123333333323'),'reg15')//false
console.log(reg15.test('17667777721'),'reg15')//true
console.log(reg15.test('18888888888'),'reg15')//true