正则的使用方法

一 javascript正则表达式的基本知识 

    javascript 正则对象创建 和用法 

    声明javascript 正则表达式 
   
     var reCat = new RegExp("cat"); 
      你也可以 
     var reCat = /cat/;      //Perl 风格   (推荐) 

学习最常用的 test exec match search  replace  split 6个方法 

   1) test  检查指定的字符串是否存在 

       var data = "123123"; 
       var reCat = /123/gi; 
       alert(reCat.test(data));  //true 
     
       //检查字符是否存在  g 继续往下走  i 不区分大小写 

   2) exec 返回查询值 

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,"; 
       var reCat = /cat/i; 
       alert(reCat.exec(data));  //Cat 

     3)match  得到查询数组 

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,"; 
       var reCat = /cat/gi; 
       var arrMactches = data.match(reCat) 

       for (var i=0;i < arrMactches.length ; i++) 
       
            alert(arrMactches);   //Cat  cat 
       

     4) search  返回搜索位置  类似于indexof 

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,"; 
       var reCat = /cat/gi; 
       alert(data.search(reCat));  //23 


    5) replace  替换字符  利用正则替换 

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,"; 
       var reCat = /cat/gi; 
       alert(data.replace(reCat,"libinqq")); 

    6)split   利用正则分割数组 

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,"; 
       var reCat = /\,/; 
       var arrdata = data.split(reCat); 

       for (var i = 0; i < arrdata.length; i++) 
       
            alert(arrdata); 
       

3  学习下  简单类   负向类  范围类  组合类 

    //简单类 
       var data = "1libinqq,2libinqq,3libinqq,4libinqq"; 
       var reCat = /[123]libinqq/gi; 
       var arrdata = data.match(reCat); 

       for (var i = 0; i < arrdata.length; i++) 
       
            alert(arrdata);  // 1libinqq 2libinqq  3libinqq 
       

       //负向类 
       var data = "alibinqq,1libinqq,2libinqq,3libinqq,4libinqq";  //u0062cf 
       var reCat = /[^a123]libinqq/gi; 
       var arrdata = data.match(reCat); 

       for (var i = 0; i < arrdata.length; i++) 
       
            alert(arrdata);  //4libinqq 
       

       //范围类 
       var data = "libinqq1,libinqq2,libinqq3,libinqq4,libinqq5";  //u0062cf 
       var reCat = /libinqq[2-3]/gi; 
       var arrdata = data.match(reCat); 

       for (var i = 0; i < arrdata.length; i++) 
       
            alert(arrdata);   // libinqq2  libinqq3 
       

       //组合类 
      var data = "a,b,c,w,1,2,3,5";  //u0062cf 
       var reCat = /[a-q1-4 ]/gi; 
       var arrdata = data.match(reCat); 

       for (var i = 0; i < arrdata.length; i++) 
       
            alert(arrdata);  // a b c 1 2 3 
       
二  javascript  正则表达式是分组知识 
1) 简单分组 
  1.     <script language="JavaScript">   
  2.       <!--   
  3.              
  4.            
  5.         var data = "Ah-mousemouse";     
  6.         var reCat = /(mouse){2}/gi;      
  7.         var arrdata = data.match(reCat);   
  8.       
  9.         for (var i = 0; i < arrdata.length; i++)   
  10.         {   
  11.             alert(arrdata[i]);   
  12.         }   
  13.       //-->   
  14.       </script>  
复制代码

2 复杂分组
  1.     <script language="JavaScript">   
  2.       <!--   
  3.              
  4.            
  5.         var data = "bb ba da bad dad aa ";     
  6.         var reCat = /([bd]ad?)/gi;   // 匹配出 ba da bad  dad   
  7.         var arrdata = data.match(reCat);   
  8.       
  9.         for (var i = 0; i < arrdata.length; i++)   
  10.         {   
  11.             alert(arrdata[i]);   
  12.         }       
  13.            
  14.       
  15.         // 同时 也不介意将分组放在分组中间   
  16.         // var re = /(mom( and dad)?)/;    匹配出 mom  或  mon and daa   
  17.       //-->   
  18.       </script>  
复制代码

3 反向引用
  1.     <script language="JavaScript">   
  2.       <!--   
  3.           
  4.       
  5.         var sToMatch = "#123456789";   
  6.         var reNumbers = /#(d+)/;   
  7.         reNumbers.test(sToMatch);   
  8.         alert(RegExp.$1);   
  9.       
  10.           
  11.       
  12.       
  13.         var sToChange = "1234 5678";   
  14.         var reMatch = /(d{4}) (d{4})/;   
  15.         var sNew = sToChange.replace(reMatch,"$2 $1");   
  16.         alert(sNew);   
  17.       
  18.           
  19.       
  20.       //-->   
  21.       </script>  
复制代码

4 候选
  1.     <script language="JavaScript">   
  2.       <!--   
  3.           
  4.         var sToMatch1 = "red";   
  5.         var sToMatch2 = "black";   
  6.         var reRed = /red/;   
  7.         var reBlack = /black/;   
  8.       
  9.         alert(reRed.test(sToMatch1) || reBlack.test(sToMatch1));   
  10.         alert(reRed.test(sToMatch2) || reBlack.test(sToMatch2));   
  11.       
  12.           
  13.       
  14.         var sToMatch1 = "red";   
  15.         var sToMatch2 = "black";   
  16.         var reRedOrBlack = /(red|black)/;   
  17.         alert(reRedOrBlack.test(sToMatch1));   
  18.         alert(reRedOrBlack.test(sToMatch2));   
  19.       
  20.       //-->   
  21.       </script>  
复制代码

5 非捕获性分组
  1.     <script language="JavaScript">   
  2.       <!--   
  3.           
  4.       
  5.         var sToMatch = "#123456789";   
  6.         var reNumbers = /#(?:d+)/;   
  7.         reNumbers.test(sToMatch);   
  8.         alert(RegExp.$1);   
  9.       
  10.           
  11.       
  12.         var sToMatch = "#123456789";   
  13.         var reNumbers = /#(?:d+)/;   
  14.         alert(sToMatch.replace(reNumbers,"abcd$1"));   
  15.       
  16.           
  17.       //-->   
  18.       </script>  
复制代码

6 前瞻
  1.     <script language="JavaScript">   
  2.       <!--   
  3.           
  4.       
  5.       
  6.           var sToMatch1 = "bedroom";   
  7.           var sToMatch2 = "bedding";   
  8.           var reBed = /bed(?=room)/;    
  9.           alert(reBed.test(sToMatch1));  //true   
  10.           alert(reBed.test(sToMatch2));  //false   
  11.           
  12.         //负向前瞻   
  13.            
  14.           var sToMatch1 = "bedroom";   
  15.           var sToMatch2 = "bedding";   
  16.           var reBed = /bed(?!room)/;    
  17.           alert(reBed.test(sToMatch1)); //false   
  18.           alert(reBed.test(sToMatch2)); //true   
  19.       //-->   
  20.       </script>  
复制代码

7 边界
  1.     <script language="JavaScript">   
  2.       <!--   
  3.           
  4.       
  5.           var sToMatch = "Important word is the last one.";   
  6.           var reLastWord = /(w+).$/;    
  7.           reLastWord.test(sToMatch);   
  8.           alert(RegExp.$1);  //one   
  9.       
  10.           
  11.       
  12.       
  13.       
  14.           var sToMatch = "Important word is the last one.";   
  15.           var reLastWord = /^(w+)/;    
  16.           reLastWord.test(sToMatch);   
  17.           alert(RegExp.$1);  //Important   
  18.       
  19.           
  20.           
  21.           var sToMatch = "Important word is the last one.";   
  22.           var reLastWord = /^(.+?)/;    
  23.           reLastWord.test(sToMatch);   
  24.           alert(RegExp.$1);  //Important   
  25.            
  26.           
  27.       
  28.         var data = " First second thind fourth fifth sixth ";     
  29.         var reCat = /(S+?)/g;      
  30.         var arrdata = data.match(reCat);   
  31.       
  32.         for (var i = 0; i < arrdata.length; i++)   
  33.         {   
  34.             alert(arrdata[i]);   
  35.         }      
  36.       
  37.           
  38.       //-->   
  39.       </script>  
复制代码

8 多行模式
  1.     <script language="JavaScript">   
  2.       <!--   
  3.              
  4.            
  5.         var data = " First second thind fourth fifth sixth";     
  6.         var reCat = /(w+)$/g;      
  7.         var arrdata = data.match(reCat);   
  8.       
  9.         for (var i = 0; i < arrdata.length; i++)   
  10.         {   
  11.             alert(arrdata[i]);   
  12.         }     
  13.            
  14.              
  15.         var data = " First second thind fourth fifth sixth";     
  16.         var reCat = /(w+)$/gm;      
  17.         var arrdata = data.match(reCat);   
  18.       
  19.         for (var i = 0; i < arrdata.length; i++)   
  20.       
  21.         {   
  22.             alert(arrdata[i]);   
  23.         }  a   
  24.            
  25.       
  26.       //-->   
  27.       </script>  
复制代码

转载出处:http://www.ok22.org/art_detail.aspx?id=209【js的正则方法使用实例幸凡在线学习网
原文地址:https://www.cnblogs.com/zhaojia-dream/p/3554727.html