正則表達式:用來匹配一些有特定規則的字符串;正則表達式
語法:匹配原則寫在雙斜槓(/匹配規則/)中。json
1.參數: i:忽略大小寫(默認區分大小寫) g:全局匹配 m:多行匹配;數組
2.普通匹配符:如:/a/ 、 /A/ 、 /Q/函數
3.可以匹配多個字符中的一個字符的匹配符,只能匹配一個:
\d:0-9 \w:數字、字母、下劃線 .:匹配除了了換行符意外的任意字符中的一個編碼
4.自定義匹配:
[]:匹配裏面定義的字符的任意一個,如:
a.[1,8,9]:能夠匹配一、八、9和「,」;
b.[189]:能夠匹配一、八、9;對象
^:取反,如:
[^678]:匹配出了678以外的任意字符,也能夠匹配特殊字符和字母(&、=、k)圖片
5.修飾匹配次數
+:1~max ?:0~1 *:0~max字符串
{n}:修飾前面的一個字符出現n次;
{m,n}:修飾前面的一個字符出現m-n次;
{m,}:修飾前面的一個字符最少出現m次,最大不限;
{,n}:修飾前面的一個字符最大出現n次,最小能夠不出現;
6.完整匹配:
^:開始位置(^在[]中表示取反) $:持續匹配到結束
特殊符號的匹配:在匹配的時候須要加上轉移符「\」,如:. ^ $ [ ] \test
7.條件分支| 與 ()
|: 條件分支 ():裏面的內容會分組單獨匹配表單
8.數組的匹配:根據規律寫出正則表達式(可分紅部分來寫)(json數據的組成)
數值的正則(包含科學科學計數法):^(-?)(0|[1-9]\d*)(\.\d+)?([eE][+-]?\d+)?$
9.中文的處理:雙字節存儲,根據ASCII編碼對應表倆輸入漢字,[]來設置中文範圍
js中的escape():把字符串轉化爲ASCIIi編碼;
10.貪婪與懶惰:
貪婪:儘量多的去匹配;正則默認的是貪婪模式;
懶惰:儘量少的去匹配;在表示匹配數量(? + * {})的後面加上「?」表示懶惰匹配模式。
15.在js中:
match()函數:若是是全局匹配(g),那麼是不支持分組的,通常g與徹底匹配(^ $)是互斥的;
exec()函數:支持全局匹配+分組功能(真正的正則表達式對象);如:
var regExp = new RegExp(/正則匹配/);
var res = regExp.exec(被匹配內容);
test()函數:通常用於表單驗證,匹配成功返回true,匹配失敗返回false;
經常使用的匹配:
1.匹配圖片(使用了懶惰模式:一半匹配多個對象的時候,須要使用懶惰模式):
<img.*?src=['"]?.*?["']?.*?[\/]?>/gi