正则表达式常用的验证方法

一,定义正则表达式 1,通过构造函数的方式定义正则表达式****************需要更多的转义字符例如: 代码如下var re = new RegEx

一,定义正则表达式

1,通过构造函数的方式定义正则表达式****************需要更多的转义字符

   例如: 代码如下

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

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





2,通过//,也就是两个斜杠定义正则表达式

   例如: 代码如下

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

二,在验证中经常使用的三个正则表达式方法

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

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

  代码如下:

    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");  
             }                 
      }


   2,正则表达式方法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");  
                    }   

                 }




     3,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");    
                             }

三,正则表达式的转义字符

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

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

代码如下:

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");
}

  }