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)
b:string物件:這個就是string物件所擁有的方法主要的有:search,match,replace和split。這裡說一下match,他是一次性返回所有的結果,但前提是加了g,如果不加g也是只會返回第乙個匹配。需要說明的是如果加上了g match是一次性返回所有的結果即它的結果直接是乙個匹配結果的陣列,這一點要與exec區分開,exec即使加上了g也需要使用while迴圈來依次取出。replace方法使用的重點也是在g的使用上有g就是替換所有,沒有就是替換第乙個。
理解了這些後面的匹配模式就會容易搞懂寫,接下來會繼續更新關於模式這方面的詳細講解。
js 正規表示式(1)
正規表示式是前端面試中的高頻考點,但是正則又像一塊裹腳布一樣又臭又長。最近看一些部落格找到一些規律,分享在這裡。正則是匹配模式,要麼匹配字串,要麼匹配位置。1.長度不定 使用量詞 abc 表示在b在a和c 之間出現有2 5次不等。1.字元不定 使用字元組 123 ab 123 c 表示在b和之間可能...
js正規表示式1
知識 阮一峰老師的教程 doctype html html lang en head meta charset utf 8 title title title head body body script 正則物件的屬性和方法 正則物件的屬性分成兩類。一類是修飾符相關,返回乙個布林值,表示對應的修飾符...
JS 之正規表示式
字元含意 做為轉意,即通常在 後面的字元不按原來意 釋,如 b 匹配字元 b 當b前面加了反斜桿後 b 轉意為匹配乙個單詞的邊界。或 對正規表示式功能字元的還原,如 匹配它前面元字元0次或多次,a 將匹配a,aa,aaa,加了 後,a 將只匹配 a 匹配乙個輸入或一行的開頭,a 匹配 an a 而不...