首先,我們先討論一下什麼是正則?為什麼需要正則?正則能做哪些事情?
正規表示式實際上就是規定了一系列的字串規則,例如說我們看到18788724827就能知道這是乙個手機號,看到[email protected]就知道這是乙個郵箱。那麼,我們怎麼讓計算機知道這一切呢?
我們人類之所以能分辨出來是因為我們心裡有乙個模型,我們知道十一位的數字很有可能就是乙個手機號,@+郵箱品牌+.com的組合很有可能是乙個郵箱。正則正式提供一種語法,讓我們把自己心中的那種識別模式告訴計算機,讓計算機能像我們人類一樣去識別特定的字串。好了話不多說,下面正式介紹一下正則的使用。
建立正則也是乙個js內建物件,所以可以通過new regexp()的形式建立,也可以通過簡寫//的形式建立:
var re01 = new
regexp('a'); //這種形式建立,可以往正則中傳入變數
var re02 = /a/; // 簡寫形式不可以傳入變數,且不能加引號
方法test
re.test(str)方法是正則物件上的乙個方法,接受乙個字串作為引數,如果字串中有符合正則的部分,則返回true,反之則返回false。
var str = 'abcd';
var re = /a/;
re.test(str) // true
方法search
str.search(re),查詢字串中是否有符合正則的部分,如果有,返回第乙個匹配項的位置,否則返回-1;
var str = 'bbcasa';
var re = /a/;
str.search(re) // 4
方法match
str.match(re),尋找字串中符合正則的匹配項,並將這些匹配項以陣列的形式返回,否則返回null。
var str = 'abcaadaefaa';
var re = /a+/g;
// ["a", "aa", "a", "aa"]
方法replace
str.replace(re, newstr | callback) 該方法首先匹配字串中符合正則的部分然後替換成newstr或者callback的返回值;這裡的callback = function(str,str1,str2…),引數str表示匹配到的匹配項,str1,str2…分別表示正則匹配項中的第乙個,第二個子項。關於什麼是子項,後面我們會詳細介紹。
var str = "我愛吃飯,我愛睡覺,我愛打豆豆";
var re = /(吃飯)|(睡覺)|(打豆豆)/g ;
str.replace(re, (...grv) => ).join("")
return res
})
上面的例子中,我們過濾了某些詞語,並且將其替換成**號,相信,大家在玩遊戲的時候深有體會,打了半天字,發出去的沒有幾個!
預設行為
正規表示式中預設是區分大小寫的,不過可以通過在末尾加上i來關閉這一預設行為
var re=/abvr/i;
找到第乙個匹配項就會結束查詢,通過在末尾加g可以使得正則變成全域性匹配模式
var re=/as/b;
正則中的小括號
分組操作:小括號內的部分作為乙個整體進行操作,請看下面的例子
var str = '2017-8-12'
var re01 = /\d-+/g
var re02 = /(\d-)+/g
str.match(re01) // ['7-', '8-']
str.match(re02) // ['7-8-']
匹配子項:整個正則匹配到的匹配項我們暫且成為父項,然後就容易理解,被小括號括起來的各個部分就是父項下面的乙個乙個的子項。
var str = '2017-8-12'
var re = /(\d+)(-)/g
str.replace(re, ($0, $1, $2) => ) // 2017- 2017 -; 8- 8 -; 2017.8.12
match()方法在不加g的情況下,在返回的陣列中會展開所有子項;
var str = 'abc'
var re = /(a)(b)(c)/
str.match(re) // ['abc', 'a', 'b', 'c']
正則中的中括號
字元類:一組相似的字元,[abc]整體代表乙個字元,內部為或的關係。
正則中的大括號
大括號用來表示量詞
限制字串的起始和結束
正則中的轉義字元
\1; \2; \3 …
重複第n個子項
目的:看下面兩個例子有什麼不同
var re = /\w\w/; ab,cd
var re =/(\w)\1/; aa, bb
實際開發環境
實際公司開發環境中,應該把正則都放到乙個物件或者乙個json中,方便統一管理,統一調配
正規表示式入門教程
元字元原義字元 非列印字元 字元類預定義類 邊界量詞 貪婪與懶惰 非貪婪 3.練習一下 先來看看幾個常用的案例。手機號碼正規表示式 1 345789 0 9 解釋 最外的 是正則的表示式的標誌,表示以什麼開頭,表示哪些可選項,表示出現幾次,以什麼結尾。手機號案例 以1開頭,第2位為 3,4,5,7,...
正規表示式入門教程
正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索 替換那些符合某個模式的文字。在編寫處理字...
正規表示式入門教程
表1.常用的元字元 匹配除換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 表2.常用的限定符 語法說明 重複零次或更多次 重複一次或更多次 重複零次或一次 重複n次 重複n次或更多次 重複n到m次 3 正規...