正则表达式
1. 贪婪模式
贪婪模式(greedy)会尽可能多地匹配字符。
const reg = /ab{1,3}c/;
匹配过程:先尝试 abbbc,不能匹配就吐出 b,在 abbc 的基础上再尝试,以此重复。
2. 懒惰模式(惰性)
惰性量词在贪婪量词后加问号,表示尽可能少地匹配。
const str = '12345';
const regex = /(\d{1,3}?)(\d{1,3})/;
str.match(regex);
// ["1234", "1", "234", index: 0, input: "12345"]
其中 \d{1,3}? 只匹配到一个字符 "1",而后面的 \d{1,3} 匹配 "234"。
3. 常用正则方法
- 字符串方法:
match、matchAll、search、replace、split。 - 正则对象方法:
test(返回布尔值)、exec(返回匹配数组或null)、compile(已废弃,重新编译正则)。
/\d+/.test('a1b'); // true
/\d+/.exec('a1b')[0]; // '1'
'ab1cd2'.match(/\d/g); // ['1', '2']
来源整理自:vue3js.cn 面试官系列



