作业练习正则表达式
1.匹配密码,密码必须包含数字与字母
reg= /(?!^[0-9]+$)(?!^[a-zA-Z]+$)^[0-9A-Za-z]{6}$/;
?!pattern,表示不匹配pattern的字符串,在一次匹配过后从头匹配,即reg中在匹配(?!^[0-9]+$)过后,如果字符串成功后在从头去匹配(?!^[a-zA-Z]+$),最终匹配完。
2.匹配密码,密码强度:强,必须包含大写,小写和数字,和特殊字符(!,@,#,%,&),且大于6位
reg=/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!|@|#|%|&])^([a-zA-Z0-9!@#%&]){6,}$/
?=pattern表示匹配pattern结束后再从头开始匹配,.*[A-Z]表示以A-Z结尾的字符串部分。
列如:可以与此匹配的字符串"as12Drv!bb%h"
首先是(?=.*[A-Z])匹配,他会匹配以大写字母结尾的字符串的部分,最终表示至少一个大写,要匹配的字符串“as12Drv!bb%h”,这小段正则式会匹配“as12Drv!bb%h”的前部分“as12D”,在找到’D‘’匹配成功并匹配结束,然后又从头开始以(?=.*[a-z])去匹配以小写结尾的,表示至少一个小写,在找到开始部分的“a”后便匹配成功并匹配结束,(?=.*[0-9])和(?=.*[!|@|#|%|&])是一样的,前者代表以数字结尾,后者代表以特殊字符结束,([a-zA-Z0-9!@#%&])全局检查,查看是否包含了除规定字符之外的字符,{6,}表示字符大于6位
3.匹配email
reg=/^([a-zA-Z0-9]+)@([0-9a-zA-Z]+).com$/;
([a-zA-Z0-9]+)表示匹配含大写或者小写或者数字的字符串部分,[a-zA-Z0-9]表示字符是数字或者大写或者小写,+表示前面的字符有一个或者多个,^表示字符串首,$表示字符串末
4.匹配身份证
reg= /^([0-9]){17}([0-9]|X)$/;
{17}表示前面字符有17个。|表示或者。
5.匹配用户名,包含字母或者数字,且8位
reg=/^[0-9a-zA-Z]{8}$/
参考:http://www.runoob.com/regexp/regexp-metachar.html