【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属性上引用该组名。同时,数字序号(matchObj1)依然有效。

相关推荐
廖菌1 分钟前
DATASPACE3D 产品介绍:面向数字孪生与 Web3D 场景的一体化可视化搭建平台
前端·webgl
敖行客 Allthinker3 分钟前
前端调试实战:DevTools调试工具 + 二分定位Bug法全总结
前端·typescript·chrome devtools
暗不需求3 分钟前
手写深拷贝:从 JSON 到递归,彻底解决循环引用问题
前端·面试
灏仟亿前端技术团队7 分钟前
DOMagic:把 AI 修改绑定到页面节点的前端开发态插件
前端
Lugas8 分钟前
浏览器为什么要如此严格地限制跨域请求?
前端·黑客·浏览器
想要成为糕糕手10 分钟前
前端异步编程的终极指南:从 Promise 到 async/await,这一次彻底搞懂!
javascript·promise
Cobyte15 分钟前
17.响应式系统比对:链表如何实现响应式系统的高效更新
前端·javascript·vue.js
2601_9637713719 分钟前
Speeding Up Creative Agency Portfolios: A Performance Guide
前端·数据库·php
禅思院19 分钟前
AI对话前端从入门到崩溃:一个长对话引发的五层优化战争【二】
前端·前端框架·ai编程
虚心的百褶裙43 分钟前
JavaScript性能优化
开发语言·javascript·性能优化