本文參考《正則表達式迷你書》javascript
正則可匹配的字符串的長度不是固定的。例如/ab{2, 5}c/, 含義一個a接下來2到5個b接下來是c。java
正則匹配到字符串到某一個的字符時,能夠不是某個肯定的字符,能夠有多種可能。例如/a[123]b/, 匹配的字符串能夠是a1b, a2b, a3b正則表達式
雖叫字符組, 可是正則只是匹配字符組中的一個字符express
[123456abcGHIJ] // 能夠寫成 [1-6a-cG-J]
// 就是字符串中某一位不能爲abc [^abc]
簡寫 | 原始 |
---|---|
d | [0-9] |
D | 1 |
w | [0-9a-zA-Z] |
W | 2 |
s | [tvnrf] 空白, 水平製表, 垂直製表, 換行, 回車, 換頁 |
S | 3 |
. | 通配符 |
[dD], [wW], [sS], [^]數組
量詞 | 含義 |
---|---|
{m, } | 至少出現m次 |
{m} | 出現m次 |
? | {0, 1} |
是儘量多的匹配app
// reg會盡量多的匹配, 例如: 12345, 我會匹配12345而不匹配12 var reg = /\d{2, 5}/g;
是儘量少的匹配spa
// reg會盡量少的匹配, 例如: 12345, 我會匹配 12, 34 // 只要知足2個, 就不會往下匹配了 var reg = /\d{2, 5}?/g
惰性量詞通常是在貪婪量詞後面添加問號code
貪婪量詞 | 惰性量詞 |
---|---|
{m, n} | {m, n}? |
{m, } | {m, }? |
? | ?? |
多選分支能夠支持多個子正則任選其一。注意分支匹配也是惰性的, 當匹配知足第一個後就不會第二個了。ip
// 能夠匹配good或者nice var reg = /good|nice/
var reg = /^#{1}[0-9a-fA-F]{3}$|^#{1}[0-9a-fA-F]{6}$/g
// 匹配補0的時間格式(MM:SS) var reg1 = /^([01][0-9]|[2][0-3]):[0-5][0-9]$/g // 匹配不須要補0的時間格式(M:S|MM:SS), 個位數開始0能夠不寫 var reg2 = /^(0?[0-9]|[1][0-9]|[2][0-3]):(0?[0-9]|[1-5][0-9])$/g
var reg = /^([0-9]{4})-(0[1-9]|1[1-2])-(0[1-9]|[12][0-9]|3[01])$/g
路徑的常見格式以下: rem
F:studyjavascriptregexregular expression.pdf
F:studyjavascriptregex\
F:studyjavascript
var reg = /^[a-zA-Z]:\\([^\\:*<>|"?\r\n/]+\\)*([^\\:*<>|"?\r\n/]+)?$/g
<div id="app" class="app"></div> var reg = /id=".*"/
若是使用此正則, 因爲是貪婪的, 而且.是通配符包含了", 因此會匹配到最後一個"以前的所用內容(包括其餘的")。咱們可使用惰性匹配模式(在量詞後面添加問號)
// .*後遇到第一個"就會中止匹配 var reg1 = /id=".*?"/g