JavaScript 字符串 matchAll() 方法
ES2020 之前,没有字符串方法可以用来查找字符串中某个字符串的所有出现位置。
如果参数是正则表达式,则必须设置全局标志 (g),否则会抛出 TypeError 异常。
如果要进行不区分大小写的搜索,必须设置不区分大小写的标志 (i):
描述
matchAll() 方法将字符串与正则表达式进行匹配。
matchAll() 方法返回一个包含所有匹配项的数组。
matchAll() 方法如果没有找到匹配项,则返回 null。
语法
string.matchAll(match)
参数
| 参数 | 描述 |
| match | 必填。 搜索值。 正则表达式(或将被转换为正则表达式的字符串)。 |
返回值
| 类型 | 描述 |
| Iterator or null |
包含匹配项的迭代器。 如果没有找到匹配项,则返回 null。 |
字符串 match() 和字符串 search() 的区别
match() 方法返回一个匹配项数组。
search() 方法返回第一个匹配项的位置。
正则表达式方法
正则表达式的搜索和替换可以使用不同的方法。
以下是最常用的方法:
字符串方法
| 方法 | 描述 |
|---|---|
| match(regex) | 返回结果数组 |
| matchAll(regex) | 返回结果迭代器 |
| replace(regex) | 返回新字符串 |
| replaceAll(regex) | 返回一个新的字符串 |
| search(regex) | 返回第一个匹配项的索引 |
| split(regex) | 返回一个结果数组 |
正则表达式方法
| 方法 | 描述 |
|---|---|
| regex.exec() | 返回结果迭代器 |
| regex.test() | 返回 true 或 false |
浏览器支持
string.matchAll() 是 JavaScript 2020 的一项特性。
ES 2020 自 2020 年 9 月起,所有现代浏览器均已支持 ES 2020。
| Chrome 85 |
Edge 85 |
Firefox 79 |
Safari 14 |
Opera 71 |
| 2020年8月 | 2020年8月 | 2020年3月 | 2020年9月 | 2020年9月 |
