正則表達(dá)式是一種匹配模式,對于校驗(yàn)表單起著尤為重要的作用。
正則表達(dá)式字符的匹配攻略
- 精確匹配
var regex = /Heiman/;
console.log( regex.test("Heiman") ); // => true
以上代碼塊,可以將regex看做是一種校驗(yàn)的標(biāo)準(zhǔn),去校驗(yàn)字符 "Heiman" 這種匹配方式一目了然,當(dāng)然在實(shí)際中精確匹配的應(yīng)用場景比較少。主要是下面兩種匹配方式。
- 橫向模糊匹配
橫向模糊指的是,一個正則可匹配的字符串的長度不是固定的,可以是多種情況的。
其實(shí)現(xiàn)的方式是使用量詞。譬如 {min,max},表示連續(xù)出現(xiàn)最少 min 次,最多 max 次。
比如正則 /ab{2,5}c/ 表示匹配這樣一個字符串:第一個字符是 "a",接下來是 2 到 5 個字符 "b",其中{min,max}就是對字符b起作用,最后 是字符 "c"。
const regex = /ab{2,5}c/g; // 說白了就是允許多少個b字符出現(xiàn)嘛
const string = "abc abbc abbbc abbbbc abbbbbc abbbbbbc";
console.log( string.match(regex) ); // => ["abbc", "abbbc", "abbbbc", "abbbbbc"]
- 縱向模糊匹配
縱向模糊指的是,一個正則匹配的字符串,具體到某一位字符時,它可以不是某個確定的字符,可以有多種 可能。
其實(shí)現(xiàn)的方式是使用字符組。譬如 [abc],表示該字符是可以字符 "a"、"b"、"c" 中的任何一個。
比如 /a[123]b/ 可以匹配如下三種字符串: "a1b"、"a2b"、"a3b"
const regex = /a[123]b/g;
const string = "a0b a1b a2b a3b a4b";
console.log( string.match(regex) ); // => ["a1b", "a2b", "a3b"]
本文參考于<<JavaScript 正則表達(dá)式迷你書>>