【es6】具名组匹配

1、组匹配

正则表达式使用圆括号进行组匹配,如:const RE_DATE = /(\d{4})-(\d{2})-(\d{2})/;,三个圆括号形成了三个组匹配。

代码:

javascript 复制代码
const RE_DATE = /(\d{4})-(\d{2})-(\d{2})/;

const matchObj = RE_DATE.exec('1999-12-31');
const year = matchObj[1]; // 1999
const month = matchObj[2]; // 12
const day = matchObj[3]; // 31

2、具名组匹配

ES2018 引入了具名组匹配(Named Capture Groups),允许为每一个组匹配指定一个名字,既便于阅读代码,又便于引用。

javascript 复制代码
const RE_DATE = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;

const matchObj = RE_DATE.exec('1999-12-31');
const year = matchObj.groups.year; // "1999"
const month = matchObj.groups.month; // "12"
const day = matchObj.groups.day; // "31"

上面代码中,"具名组匹配"在圆括号内部,模式的头部添加"问号 + 尖括号 + 组名"(?),然后就可以在exec方法返回结果的groups属性上引用该组名。同时,数字序号(matchObj[1])依然有效。

相关推荐
狗胜几秒前
AI观察日记 2026-03-02|CLAUDE、TYPE、APPFUNCTIONS:掘金热门里的下一步信号
前端
喝水的长颈鹿2 分钟前
【大白话前端 02】网页从解析到绘制的全流程
前端·javascript
明君879974 分钟前
Flutter 实现 AI 聊天页面 —— 记一次 Markdown 数学公式显示的踩坑之旅
前端·flutter
用户14536981458785 分钟前
VersionCheck.js - 让前端版本更新变得简单优雅
前端·javascript
米饭同学i6 分钟前
微信小程序实现随机撒花效果
前端
Arthur14726122865477 分钟前
模块化和组件化的区别
前端
codingWhat9 分钟前
整理「祖传」代码,就是在开发脚手架?
前端·javascript·node.js
码路飞17 分钟前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
臣妾没空19 分钟前
里程碑5:完成框架npm包抽象封装并发布
前端·npm
Lee川20 分钟前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试