熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

js正則表達式的使用詳解

2013-11-15 12:06:02  來源: JSP教程 
本篇文章是對js中正則表達式的使用進行了詳細的分析介紹需要的朋友可以參考下  

  js中的正則表達式比起C#中的正則表達式要弱很多但基本夠用了
定義正則表達式
關於驗證的三個這則表達式方法
正則表達式式的轉義字符

定義正則表達式
在js中定義正則表達式很簡單有兩種方式一種是通過構造函數一種是通過//也就是兩個斜槓
例如

復制代碼 代碼如下:
  var   re =new RegExp("?(w{}=w{}&){}w{}=w{}");

  
使用構造函數定義正則表達式注意大小寫負責就會不起作用由於構造函數的參數是一個字符串也可以是兩個斜槓的方式定義遇到一些特殊字符就需要使用進行轉義
通過雙斜槓的方式定義同樣的正則表達式

復制代碼 代碼如下:
var   re =/?(w{}=w{}&){}w{}=w{}/; 復制代碼 代碼如下:
var re =new RegExp( /^?(w{}=w{}&){}w{}=w{}/);

  
可以和構造函數達到同樣的效果但仔細分析發現通過構造函數需要更多的轉義字符

關於驗證的三個正則表達式方法

使用正則表達式的主要有字符串的方法match正則表達式的方法exectest
正則表達式方法test測試給定的字符串是否滿足正則表達式返回值是bool類型的只有真和假如果只是單純的判斷不需要其他的處理可以使用尤其是驗證時

復制代碼 代碼如下:
 function test(){ 
    var text="indexaspx?test=&ww=&www="; //   
      var   re =/?(w{}=w{}&){}w{}=w{}/;
    //  var   re =new RegExp("?(w{}=w{}&){}w{}=w{}");
        var result=  retest(text);
     if(result)
     {
        alert("ok");  
     }else
     {
      alert("err"); 
     }                

      }

  
正則表達式方法exec測試給定的字符串是否滿足正則表達式返回匹配到的字符串如果沒有匹配的則返回null和test基本一致如果需要獲取匹配的各個子字符串可以使用下標的方式把上邊的test的例子可以改寫如下

復制代碼 代碼如下:
 function test(){ 
   var text="indexaspx?test=&ww=&www=";
            var   re = /?(w{}=w{}&){}w{}=w{}/;
   //  var   re =new RegExp( "?(w{}=w{}&){}w{}=w{}");
        var result=  reexec(text); 
      if(result)
     {
           alert("ok"); 
                          alert(result);  // 是?test=&ww=&www=ww=&    
            alert(result[]+"");//是?test=&ww=&www=
     alert(result[]+"");//是ww=&    
     }else
     {
      alert("err"); 
     }  

      }

  
match其實是字符串的方法但參數確是一個正則表達式把上邊的例子改寫後如下

復制代碼 代碼如下:
 function test(){ 
    var text="indexaspx?test=&ww="; //
          var   re = /?(w{}=w{}&){}w{}=w{}/;
     //   var   re = "(w{}=w{}&){}w{}=w{}"
     var result= textmatch(re);
       if(result)
         {
                           alert(result);//?test=&ww=test=&       
              alert(result[]+"");//?test=&ww=
        alert(result[]+"");//test=&
   }else
          {
          alert("err"); 
         } 
      }

  
其實字符串類還有多個函數可以傳遞正則表達式splitsearchreplace等但這些方法已經不適合驗證了

復制代碼 代碼如下:
 function test(){ 
    var text="indexaspx?test=&ww="; //
          var   re = /?(w{}=w{}&){}w{}=w{}/;
     //   var   re = "(w{}=w{}&){}w{}=w{}"
     var result= textsplit(re);    
                  alert(result);       
           alert(result[]+"");
        alert(result[]+"");    
      }

  
正則表達式式的轉義字符
在正則表達式中會經常出現轉義字符例如問號?在正則表達式中有特殊的含義如果需要匹配問號?就需要轉義使用轉義字符反斜槓
如下兩個都是匹配問號開頭的一段字符串

復制代碼 代碼如下:

  
 function test(){ 
   var text="?test=&ww=&www=";
           var   re = /^?(w{}=w{}&){}w{}=w{}/;//  ?表示配置問號?
   //  var   re =new RegExp( "^?(w{}=w{}&){}w{}=w{}");//  ?表示配置問號?
        var result=  reexec(text); 
      if(result)
     {
           alert("ok"); 
                 alert(result);       
           alert(result[]+"");
        alert(result[]+"");    
     }else
     {
      alert("err"); 
     }  

      }


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20279.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.