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");//调用

 

posted @ 2017-05-26 16:04  WhatTTEver  阅读(151)  评论(0)    收藏  举报