javascript正则表达式
1、定义正则表达式
- /.../ 用于定义正则表达式
- /.../g 表示全局匹配
- /.../i 表示不区分大小写
- /.../m 表示多行匹配
2、test(判断字符串是否符合规定的正则)
1 rep = /\d+/; 2 rep.test("dfsfsfdsf423dsddd"); 3 # true 4 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 # null 11 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 than 3 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 than 3 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-7777777
1 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");//调用

浙公网安备 33010602011771号