正则表达式是一种匹配模式,对于校验表单起着尤为重要的作用。
正则表达式字符的匹配攻略
- 精确匹配
var regex = /Heiman/;
console.log( regex.test("Heiman") ); // => true
以上代码块,可以将regex看做是一种校验的标准,去校验字符 "Heiman" 这种匹配方式一目了然,当然在实际中精确匹配的应用场景比较少。主要是下面两种匹配方式。
- 横向模糊匹配
横向模糊指的是,一个正则可匹配的字符串的长度不是固定的,可以是多种情况的。
其实现的方式是使用量词。譬如 {min,max},表示连续出现最少 min 次,最多 max 次。
比如正则 /ab{2,5}c/ 表示匹配这样一个字符串:第一个字符是 "a",接下来是 2 到 5 个字符 "b",其中{min,max}就是对字符b起作用,最后 是字符 "c"。
const regex = /ab{2,5}c/g; // 说白了就是允许多少个b字符出现嘛
const string = "abc abbc abbbc abbbbc abbbbbc abbbbbbc";
console.log( string.match(regex) ); // => ["abbc", "abbbc", "abbbbc", "abbbbbc"]
- 纵向模糊匹配
纵向模糊指的是,一个正则匹配的字符串,具体到某一位字符时,它可以不是某个确定的字符,可以有多种 可能。
其实现的方式是使用字符组。譬如 [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 正则表达式迷你书>>