正则表达式

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 面试官系列