javascript正则表达式

一、创建正在表达式

     其创建方式有两种,一种是new关键字,另一种是字面量方式
    1.new关键字
      var regexp=new RegExp('box');
      alert(regexp);//返回结果为/box/,两个反斜杠就是正则表达式的字面量表示法
      var regexp=new RegExp('box','ig'); //第二个参数可选,模式修饰符
      alert(regexp);
       模式修饰符的表格
    

 

 
    2.字面量方式(比较常用)
        var regexp=/box/; //字面量方式
        alert(regexp);
        var regexp=/box/ig; //字面量方式     ,第二个参数可选,模式修饰符
        alert(regexp);
二、测试正则表达式
   正则表达式对象中的有两个方法。一个是test(),另外一个是exec().
    1.test(),在字符串中测试模式匹配,返回true或false
       a.采用的是new关键字的test()
 
         var regexp=new RegExp('box');
        var str="Box";
        alert(regexp.test(str)); //返回false,大小写不一致
        var regexp=new RegExp('box',"i");
        var str="Box";
        alert(regexp.test(str)); //返回true,有了i模式修饰符之后就会忽略大小写了
       b.采用字面量的test()
 
      var regexp=/box/;
      var str="Box";
      alert(regexp.test(str)); //返回false,大小写不一致
      var regexp=/box/i;
      var str="Box";
      alert(regexp.test(str));//返回true,有了i模式修饰符之后就不区分大小写了
      c.一句话形式
 
       alert(/box/i.test("Box"));
      说明:
       

 

      
     2.exec(),在字符串中执行匹配搜索,返回结果数组  
 
      var regexp=/box/i;
      var str="Box";
      alert(regexp.exec(str));
      alert(typeof regexp.exec(str));// 返回的数组 ,有就返回数组的值,没有就返回null
三、使用字符串的正则表达式方法(以下方法是存在于字符串中的,是通过字符串对象去使用.符号调用
     1.使用match方法获取匹配数组
        var str="This is a box!That is a box";
        var regexp=/Box/i;  //没有开启全局匹配
        alert(str.match(regexp)); //所以只返回了第一个box
 
        var str="This is a box!That is a box";
        var regexp=/Box/ig;  //g开启全局匹配
        alert(str.match(regexp)); //所以返回两个box,以数组格式打印出来
     2.使用search()来查找匹配数据
       var str="This is a box!That is a box";
       var regexp=/Box/i;
//返回第一个匹配的位置,注意:查找第一个位置匹配就立刻返回,所以g模式修饰符的全局匹配就没有用了
       alert(str.search(regexp));//如果找不到就返回-1
     3.split()拆分成字符串数组
      var str="This is a box!That is a box";
      var regexp=/!/ig;
      alert(str.split(regexp));//以!为分割点,返回数组,结果为This is a box,That is a box
四、RegExp对象的静态属性
    
    var regexp=/google/i;
    var str="This is a Google!";
     regexp.test(str);
     alert(RegExp.input);
     alert(RegExp["$`"]);   //或者RegExp.leftContext;这两个效果相同
     multiline是否支持多行
五、RegExp对象的实例属性
    
    var regexp=/google/i;
    alert(regexp.global);   //正则对象是否设置了g(全局匹配)
lastIndex可以自己赋值


     
posted on 2014-04-23 22:51  smile小红帽  阅读(119)  评论(0编辑  收藏  举报