• JS的正则表达


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

    1     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\n]/gi;
           var arrdata = data.match(reCat);

           for (var i = 0; i < arrdata.length; i++)
           {
                alert(arrdata
    );  // a b c 1 2 3
           }
    二  javascript  正则表达式是分组知识
    1) 简单分组

        <script language="JavaScript">  
          <!--  
                
              
            var data = "Ah-mousemouse";    
            var reCat = /(mouse){2}/gi;     
            var arrdata = data.match(reCat);  
         
            for (var i = 0; i < arrdata.length; i++)  
            {  
                alert(arrdata[i]);  
            }  
          //-->  
          </script> 

    2 复杂分组
        <script language="JavaScript">  
          <!--  
                
              
            var data = "bb ba da bad dad aa ";    
            var reCat = /([bd]ad?)/gi;   // 匹配出 ba da bad  dad  
            var arrdata = data.match(reCat);  
         
            for (var i = 0; i < arrdata.length; i++)  
            {  
                alert(arrdata[i]);  
            }      
              
         
            // 同时 也不介意将分组放在分组中间  
            // var re = /(mom( and dad)?)/;    匹配出 mom  或  mon and daa  
          //-->  
          </script> 

    3 反向引用
        <script language="JavaScript">  
          <!--  
             
         
            var sToMatch = "#123456789";  
            var reNumbers = /#(\d+)/;  
            reNumbers.test(sToMatch);  
            alert(RegExp.$1);  
         
             
         
         
            var sToChange = "1234 5678";  
            var reMatch = /(\d{4}) (\d{4})/;  
            var sNew = sToChange.replace(reMatch,"$2 $1");  
            alert(sNew);  
         
             
         
          //-->  
          </script> 

    4 候选
        <script language="JavaScript">  
          <!--  
             
            var sToMatch1 = "red";  
            var sToMatch2 = "black";  
            var reRed = /red/;  
            var reBlack = /black/;  
         
            alert(reRed.test(sToMatch1) || reBlack.test(sToMatch1));  
            alert(reRed.test(sToMatch2) || reBlack.test(sToMatch2));  
         
             
         
            var sToMatch1 = "red";  
            var sToMatch2 = "black";  
            var reRedOrBlack = /(red|black)/;  
            alert(reRedOrBlack.test(sToMatch1));  
            alert(reRedOrBlack.test(sToMatch2));  
         
          //-->  
          </script> 

    5 非捕获性分组
        <script language="JavaScript">  
          <!--  
             
         
            var sToMatch = "#123456789";  
            var reNumbers = /#(?:\d+)/;  
            reNumbers.test(sToMatch);  
            alert(RegExp.$1);  
         
             
         
            var sToMatch = "#123456789";  
            var reNumbers = /#(?:\d+)/;  
            alert(sToMatch.replace(reNumbers,"abcd$1"));  
         
             
          //-->  
          </script> 

    6 前瞻
        <script language="JavaScript">  
          <!--  
             
         
         
              var sToMatch1 = "bedroom";  
              var sToMatch2 = "bedding";  
              var reBed = /bed(?=room)/;   
              alert(reBed.test(sToMatch1));  //true  
              alert(reBed.test(sToMatch2));  //false  
             
            //负向前瞻  
              
              var sToMatch1 = "bedroom";  
              var sToMatch2 = "bedding";  
              var reBed = /bed(?!room)/;   
              alert(reBed.test(sToMatch1)); //false  
              alert(reBed.test(sToMatch2)); //true  
          //-->  
          </script> 

    7 边界
        <script language="JavaScript">  
          <!--  
             
         
              var sToMatch = "Important word is the last one.";  
              var reLastWord = /(\w+)\.$/;   
              reLastWord.test(sToMatch);  
              alert(RegExp.$1);  //one  
         
             
         
         
         
              var sToMatch = "Important word is the last one.";  
              var reLastWord = /^(\w+)/;   
              reLastWord.test(sToMatch);  
              alert(RegExp.$1);  //Important  
         
             
             
              var sToMatch = "Important word is the last one.";  
              var reLastWord = /^(.+?)\b/;   
              reLastWord.test(sToMatch);  
              alert(RegExp.$1);  //Important  
              
             
         
            var data = " First second thind fourth fifth sixth ";    
            var reCat = /\b(\S+?)\b/g;     
            var arrdata = data.match(reCat);  
         
            for (var i = 0; i < arrdata.length; i++)  
            {  
                alert(arrdata[i]);  
            }     
         
             
          //-->  
          </script> 

    8 多行模式
        <script language="JavaScript">  
          <!--  
                
              
            var data = " First second\n thind fourth\n fifth sixth";    
            var reCat = /(\w+)$/g;     
            var arrdata = data.match(reCat);  
         
            for (var i = 0; i < arrdata.length; i++)  
            {  
                alert(arrdata[i]);  
            }    
              
                
            var data = " First second\n thind fourth\n fifth sixth";    
            var reCat = /(\w+)$/gm;     
            var arrdata = data.match(reCat);  
         
            for (var i = 0; i < arrdata.length; i++)  
         
            {  
                alert(arrdata[i]);  
            }  a  
              
         
          //-->  
          </script> 

  • 相关阅读:
    Excel如何关闭进程
    Excel_To_DataTable
    将本地项目上传到Github
    对于session,request,cookie的理解
    static的使用
    Java事件监听的四种实现方式
    静态网页和动态网页
    ps -ef|grep详解
    linux ls -l 详解
    PKU2418_树种统计(map应用||Trie树)
  • 原文地址:https://www.cnblogs.com/cfhome/p/2750881.html
Copyright © 2020-2023  润新知