1、定义正则表达式
- /.../ 用于定义正则表达式
- /.../g 表示全局匹配
- /.../i 表示不区分大小写
- /.../m 表示多行匹配
2、test(判断字符串是否符合规定的正则)
1 rep = /\d+/;2 rep.test("dfsfsfdsf423dsddd");3 # true4 5 rep = /^\d+$/;6 rep.test("dfsfsfdsf423dsddd");7 # false
3、exec(获取匹配的数据)
默认只取第一个
1 默认只取第一个2 rep = /\d+/;3 str = "wangshen_67_houyanfa_20"4 rep.exec(str)5 # ["67"]6 rep.exec(str)7 # ["67"]
分组匹配、对匹配到的字符串进行二次匹配
1 var text = "JavaScript is more fun than Java or JavaBeans!";2 var pattern = /Java\w*/;3 pattern.exec(text);4 # ["JavaScript"]5 var pattern = /Java(\w*)/;6 pattern.exec(text);7 # ["JavaScript", "Script"]
全局匹配、对字符串一个一个的进行匹配直到全部匹配完成返回none,然后再次匹配时重新开始
1 var text = "JavaScript is more fun than Java or JavaBeans!"; 2 var pattern = /Java(\w*)/g; 3 pattern.exec(text); 4 # ["JavaScript", "Script"] 5 pattern.exec(text); 6 # ["Java", ""] 7 pattern.exec(text); 8 # ["JavaBeans", "Beans"] 9 pattern.exec(text);10 # null11 pattern.exec(text);12 # ["JavaScript", "Script"]
4、多行匹配
默认情况下就是多行匹配
1 text = "JavaScript is more fun than \n Java or JavaBeans!"; 2 # "JavaScript is more fun than 3 Java or JavaBeans!" 4 pattern = /Java\w*/g; 5 pattern.exec(text); 6 # ["JavaScript"] 7 pattern.exec(text); 8 # ["Java"] 9 pattern.exec(text);10 # ["JavaBeans"]
当出现^ $符匹配时只能匹配一行
1 text = "JavaScript is more fun than \nJava or JavaBeans!";2 # "JavaScript is more fun than3 Java or JavaBeans!"4 pattern = /^Java\w*/g;5 pattern.exec(text);6 # ["JavaScript"]7 pattern.exec(text);8 # null
当出现^ $符匹配时还想匹配多行
1 text = "JavaScript is more fun than \nJava or JavaBeans!";2 # "JavaScript is more fun than3 Java or JavaBeans!"4 pattern.exec(text);5 # ["JavaScript", "Script"]6 pattern.exec(text);7 # ["Java", ""]8 pattern.exec(text);9 # null
验证帐号是否合法
验证规则:字母、数字、下划线组成,字母开头,4-16位。1 function 2 checkUser(str){ 3 var 4 re = /^[a-zA-z]\w{3,15}$/; 5 if(re.test(str)){ 6 alert("正确"); 7 }else{ 8 alert("错误"); 9 } 10 }11 checkUser("jihua_cnblogs");//调用
验证手机号码
验证规则:11位数字,以1开头。1 function 2 checkMobile(str) { 3 var 4 re = /^1\d{10}$/ 5 if (re.test(str)) { 6 alert("正确"); 7 } else { 8 alert("错误"); 9 }10 }11 checkMobile('13800138000'); //调用12 checkMobile('139888888889');//错误示例
验证电话号码
验证规则:区号+号码,区号以0开头,3位或4位号码由7位或8位数字组成区号与号码之间可以无连接符,也可以“-”连接如01088888888,010-88888888,0955-77777771 function 2 checkPhone(str){ 3 var 4 re = /^0\d{2,3}-?\d{7,8}$/; 5 if(re.test(str)){ 6 alert("正确"); 7 }else{ 8 alert("错误"); 9 }10 }11 checkPhone("09557777777");//调用
验证邮箱
验证规则:姑且把邮箱地址分成“第一部分@第二部分”这样第一部分:由字母、数字、下划线、短线“-”、点号“.”组成,第二部分:为一个域名,域名由字母、数字、短线“-”、域名后缀组成,而域名后缀一般为.xxx或.xxx.xx,一区的域名后缀一般为2-4位,如cn,com,net,现在域名有的也会大于4位1 function 2 checkEmail(str){ 3 var 4 re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/ 5 if(re.test(str)){ 6 alert("正确"); 7 }else{ 8 alert("错误"); 9 }10 }11 checkEmail("contact@cnblogs.com");//调用