js之正則表達式1

1.正則的作用,簡單來說主要是以下幾個:匹配,替換,搜索,提取

2.正則的兩種創建形式:

A:perl風格,簡單快速,語法:var  reg=/pattern/[flages];   解釋:pattern是模式,就是你想要點匹配效果,flages是標誌組合:有三個值,g全文搜索,i       忽略大小寫,m多行查找。

      eg:想要在一個字符串中查找是否含有字母a,忽略大小寫,全文搜索,多行,正則語句這樣寫   var reg=/a/gim; 

B:js風格,語法: var reg=new RegExp("pattern","flages");參數的意義跟上面的一樣,同樣的上面的需求用js風格來寫就有:

var    reg=new   RegExp("a","gim");

3.js的使用方法,主要兩種:

A:正則表達式對象,即正則表達式自帶的方法主要有兩個,test()和exec(),其中前者的返回值是布爾型,後者是一個數組,下標爲0的表示的是完整匹配的值,下標1-n表示的是後面分組分組(後面會講到)的匹配.

       示例:var str="running  in  the rain is  a  Beautiful thing  and  looks like  a  beauty";

       var reg=/beau/gi; 

alert(reg.test(str));//顯示的是true

alert(reg.exec(str));//什麼也沒有

對於上面的結果要特別做一個說明,因爲使用了g這全局參數,所以在執行的test的時候整個的遊標已經移到最後面了,在進行exec時就會查找不到。

對於表達式對象的exec方法,不加入g,則只返回第一個匹配,無論執行多少次均是如此,如果加入g,則第一次執行也返回第一個匹配,再執行返回第二個匹配,依次類推。對於exec方法,表達式加入了g,並不是說執行exec方法就可以返回所有的匹配,而是說加入了g之後,我可以通過某種方式得到所有的匹配,這裏的“方式”對於exec而言,就是依次執行這個方法即可。所以對於上面的問題如果我想返回所有的匹配就要這樣寫:

var str="running  in  the rain is  a  Beautiful thing  and  looks like  a  beauty";

var reg=/beau/gi;

var a;

  while((a=reg.exec(str))!=null){

alert(a[0]);

}

B:String對象:這個就是String對象所擁有的方法主要的有:search,match,replace和split。這裏說一下match,他是一次性返回所有的結果,但前提是加了g,如果不加g也是隻會返回第一個匹配。需要說明的是如果加上了g   match是一次性返回所有的結果即它的結果直接是一個匹配結果的數組,這一點要與exec區分開,exec即使加上了g也需要使用while循環來依次取出。replace方法使用的重點也是在g的使用上有g就是替換所有,沒有就是替換第一個。

理解了這些後面的匹配模式就會容易搞懂寫,接下來會繼續更新關於模式這方面的詳細講解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章