首頁 >web前端 >js教程 >js正規表示式的使用詳解_javascript技巧

js正規表示式的使用詳解_javascript技巧

WBOY
WBOY原創
2016-05-16 17:29:171078瀏覽

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

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

複製程式碼 程式碼如下:

  var ?(\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類型的,只有真和假,如果只是單純的判斷,不需要其他的處理,可以使用尤其是驗證時。
複製程式碼 程式碼如下:

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

    ,如果沒有符合的則回傳null,和test基本上一致,如果需要取得符合的各個子字串,可以使用下標的方式,把上邊的test的例子可以改寫如下



複製程式碼

程式碼如下: function test(){    var text="index.aspx?test=1&aspx?test=133&www ";            var   re = /?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;  RegExp( "\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");
        var result=  re.exec (text); 
      if(result)
     {
                 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;
     {
      alert("err"); 
     }  

     }  

     }  

  
match is actually a string method, but the parameter is indeed a regular expression. After rewriting the above example, it is as follows
Copy code The code is as follows:

function test(){
var text="index.aspx?test=1&ww=234"; //
var re = /?( w{1,}=w{1,}&){1,}w{1,}=w{1,}/;
                                                                                          1,}&){1,}\w{1,}=\w{1,}"
var result= text.match(re);
if(result)
alert(result);//?test=1&ww=234,test=1& ​ ​. There are multiple functions that can pass regular expressions, split, search, replace, etc. but these methods are no longer suitable for verification.




Copy code


The code is as follows:

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);                                                                              } 3 Escape characters of regular expressions
Escape characters often appear in regular expressions, such as question marks? There are special characters in regular expressions Meaning, if you need to match a question mark?, you need to escape it. Use the escape character backslash
. Both of the following are matching a string starting with the question mark




Copy Code


The code is as follows:

function test(){ var text="?test=1&ww=2&www=3";
var re = /^?(w{1,}=w{1,}&){1,}w{1,}=w{1,}/;// ?Indicates configuration question mark?
// var re =new RegExp( "^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}");// \? represents a configuration question mark?
var result= re.exec(text);
if(result) alert("err");
} }

}



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn