小括号 - 范围

给需要传入的数据设置一个范围,及 1或者2或者3都行;
image.png

  1. /(1|2|3)/g

花括号 - 分组

把需要匹配的字符切割成组,在匹配过程中,给每一个组都开辟一个新的空间,用来存储每个组里面存储到的数据。
image.png

  1. let d:RegExp = /^(\d{1})-(\d{2})-(\d{3})$/;
  2. console.log(d.test('1-43-353')); // true
  3. console.log(d.test('1-2-3')); // false

提取分组匹配字符

提取分组中的字符;

  1. let r:RegExp = /(\d{4})-(\d{2})-(\d{2})/;
  2. let str:string = '今年是 2020-01-01 了~ 加油学习';
  3. console.log(str.match(r));
  4. // (4) ["2020-01-01", "2020", "01", "01", index: 4, input: "今年是 2020-01-01 了~ 加油学习", groups: undefined]

使用match:返回一个数组结构,

  • 第一个是返回 **整体匹配结构**
  • 第二个是个分组的结果
  • 然后匹配的下标
  • 然后是输入的文本

    通过全局属性获取

    通过全局属性$1-$9获取,$x指向的是不同的分组
    1. let r:RegExp = /(\d{4})-(\d{2})-(\d{2})/;
    2. let str:string = '今年是 2020-01-01 了~ 加油学习';
    3. r.test(str)
    4. console.log(RegExp.$1); // 2020
    5. console.log(RegExp.$2); // 01
    6. console.log(RegExp.$3); // 01
    7. console.log(RegExp.$4); // ''