有看沒有懂的正規表達式
今天要來探討的就是處理驗證的時候必備的正規表達式,落落長的一大段就像亂碼一樣讓人有看沒有懂,一直以來都是直接 copy&paste,但有時候需要微調規則的時候就愣在那邊了,逃避了許久,今天終於要來面對這一長串的像是亂碼的東西,究竟,我到底該怎麼看懂它?
首先,先花點時間整理一下正規表達式(Regular Expression)的規則
exec
以陣列的方式回傳符合條件的結果,如果不符合則回傳 null
1 | let reg = /^a\\d{2,5}k$/; |
test
是回傳字串內”是否”含有正規表達式指定的字元,回傳結果為 true or false。
1 | let pattern = new RegExp("[0–9]{4}-[0–9]{2}-[0–9]{2}"); |
match
會根據正規表達式回傳符合字串的陣列。
1 | "995A 996B 881C".match(/99\\w/); |
replace
也可以搭配正則表達式來取代想要取代的字串
1 | "supergogo".replace(/go/g, "GO"); |
所有符合的目標字串均會取代
另外,再舉幾個生活中可能會用到的驗證規則
1 | // 信箱 xxx@yyy.zzz |
另外附上一個連結,我覺得在練習的時候很有幫助。