JavaScript 正则表达式命名捕获组 (?<n>)
示例
const text = "Name: John Doe";
// 使用命名捕获组
const regex = /(?<firstName>\w+) (?<lastName>\w+)/;
const match = text.match(regex);
let fName = match.groups.firstName;
let lName = match.groups.lastName;亲自试一试 »解释
- (?
\w+) 捕获一个单词并将其标记为 firstName - (?
\w+) 对 lastName 执行相同的操作 - text.match() 返回一个包含 groups 属性的数组
- match.groups() 返回一个对象:
{firstName:"John", lastName:"Doe" }
使用捕获组时,字符串方法 match() 和正则表达式方法 exec() 会返回一个带有 groups 属性的匹配对象。此属性保存组的名称和值。
语法
new RegExp("(?<name>x)")
或者:
/(?<name>x)/
正则表达式方法
正则表达式的搜索和替换可以使用不同的方法。
以下是最常用的方法:
字符串方法
| 方法 | 描述 |
|---|---|
| match(regex) | 返回结果数组 |
| matchAll(regex) | 返回结果迭代器 |
| replace(regex) | 返回新字符串 |
| replaceAll(regex) | 返回一个新的字符串 |
| search(regex) | 返回第一个匹配项的索引 |
| split(regex) | 返回一个结果数组 |
正则表达式方法
| 方法 | 描述 |
|---|---|
| regex.exec() | 返回结果迭代器 |
| regex.test() | 返回 true 或 false |
浏览器支持
/(?<name>x)/ 是 JavaScript 2018 的一项特性。
ES 2018 自 2020 年 6 月起,所有现代浏览器均已支持 ES 2018。
| Chrome 63 |
Edge 79 |
Firefox 78 |
Safari 12 |
Opera 50 |
| 2017年12月 | 2020年1月 | 2020年6月 | 2018年9月 | 2018年1月 |
