首页 > js正则表达式的使用详解

js正则表达式的使用详解

本文转自:http://www.jb51.net/article/39623.htm

1定义正则表达式

2关于验证的三个这则表达式方法

3正则表达式式的转义字符



1定义正则表达式

在js中定义正则表达式很简单,有两种方式,一种是通过构造函数,一种是通过//,也就是两个斜杠。

例如

复制代码代码如下:


  var   re =new RegExp("\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");



使用构造函数定义正则表达式,注意大小写,否则就会不起作用。由于构造函数的参数是一个字符串,也可以是两个斜杠的方式定义,遇到一些特殊字符就需要使用进行转义

通过双斜杠的方式定义同样的正则表达式

复制代码代码如下:


var   re =/?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;

 

复制代码代码如下:


var re =new RegExp( /^?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/);



可以和构造函数达到同样的效果,但仔细分析,发现,通过构造函数需要更多的转义字符



2关于验证的三个正则表达式方法

使用正则表达式的主要有字符串的方法match,正则表达式的方法exec,test

正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假,如果只是单纯的判断,不需要其他的处理,可以使用尤其是验证时。

复制代码代码如下:


 function test(){ 

    var text="index.aspx?test=1&ww=2&www=3"; //    

      var   re =/?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;

    //  var   re =new RegExp("\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");

        var result=  re.test(text);

     if(result)

     {

        alert("ok");   

     }else

     {

      alert("err");  

     }                 



      }



正则表达式方法exec测试给定的字符串是否满足正则表达式,返回匹配到的字符串,如果没有匹配的则返回null,和test基本一致,如果需要获取匹配的各个子字符串,

可以使用下标的方式,把上边的test的例子可以改写如下

复制代码代码如下:


 function test(){ 

   var text="index.aspx?test=1&ww=2&www=3";

            var   re = /?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;

   //  var   re =new RegExp( "\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");

        var result=  re.exec(text); 

      if(result)

     {

           alert("ok"); 

                          alert(result);  // 是?test=1&ww=2&www=3,ww=2&     

            alert(result[0]+",0");//是?test=1&ww=2&www=3

     alert(result[1]+",1");//是ww=2&     

     }else

     {

      alert("err");  

     }   



      }



match其实是字符串的方法,但参数确是一个正则表达式,把上边的例子改写后,如下

复制代码代码如下:


 function test(){ 

    var text="index.aspx?test=1&ww=234"; //

          var   re = /?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;

     //   var   re2 = "(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}"

     var result= text.match(re);

       if(result)

         {

                           alert(result);//?test=1&ww=234,test=1&        

              alert(result[0]+",0");//?test=1&ww=234

        alert(result[1]+",1");//test=1&

   }else

          {

          alert("err");  

         }  

      }



其实字符串类还有多个函数可以传递正则表达式,split,search,replace等但这些方法已经不适合验证了。

复制代码代码如下:


 function test(){ 

    var text="index.aspx?test=1&ww=234"; //

          var   re = /?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;

     //   var   re2 = "(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}"

     var result= text.split(re);     

                  alert(result);        

           alert(result[0]+",0");

        alert(result[1]+",1");    

      }



3正则表达式式的转义字符

在正则表达式中会经常出现转义字符,例如问号?在正则表达式中有特殊的含义,如果需要匹配问号?就需要转义,使用转义字符反斜杠

如下两个都是匹配问号开头的一段字符串

复制代码代码如下:


 function test(){ 

   var text="?test=1&ww=2&www=3";

           var   re = /^?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;//  ?表示配置问号?

   //  var   re =new RegExp( "^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");//  \?表示配置问号?

        var result=  re.exec(text); 

      if(result)

     {

           alert("ok"); 

                 alert(result);        

           alert(result[0]+",0");

        alert(result[1]+",1");     

     }else

     {

      alert("err");  

     }   



      }

转载于:https://www.cnblogs.com/Jtianlin/p/4357608.html

更多相关: