国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js正則表達式的使用詳解

2019-11-20 22:32:38
字體:
來源:轉載
供稿:網友

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

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

復制代碼 代碼如下:

  var   re =new RegExp("http://?(//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("http://?(//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( "http://?(//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"); 
     }  

      }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沅陵县| 兴安盟| 神木县| 南溪县| 德清县| 林周县| 噶尔县| 平邑县| 军事| 漳浦县| 米脂县| 工布江达县| 白朗县| 拉萨市| 信丰县| 海南省| 彭州市| 玉树县| 皮山县| 宝鸡市| 普陀区| 福海县| 岳阳市| 泰顺县| 绥江县| 诸暨市| 鄢陵县| 交口县| 东安县| 林周县| 开阳县| 裕民县| 贞丰县| 新营市| 呼伦贝尔市| 宝清县| 广河县| 永定县| 甘泉县| 卓尼县| 方山县|