在 ES9 中,新增了字符串函数 matchAll,该函数允许我们在字符串中使用正则表达式进行全局匹配,并返回所有匹配结果。matchAll 函数返回的是一个迭代器,可以通过 for...of 循环进行遍历。
matchAll 函数用法
matchAll 函数的语法如下:
---------------------
其中,str 表示要匹配的字符串,regexp 表示要使用的正则表达式。matchAll 函数会返回一个迭代器,每个迭代器包含两个属性:value 和 done。value 表示匹配到的结果,done 表示迭代器是否完成遍历。
示例代码
下面是一个使用 matchAll 函数的示例代码:
----- --- - ------- ------ ---- -- - ---- --------- ----- --- - ------- ----- -------- - ------------------ --- ------ ----- -- --------- - ---------------------- -- --------- -
上面的代码会输出 str 中所有按照正则表达式 reg 匹配到的连续字符序列。
深入解析
matchAll 函数返回的迭代器可以使用 next 方法进行遍历。调用 next 方法会返回一个对象,该对象有两个属性:value 和 done。value 属性表示匹配结果,done 属性表示遍历是否结束。
我们可以使用循环来遍历迭代器:
----- --- - ------- ------ ---- -- - ---- --------- ----- --- - ------- ----- -------- - ------------------ --- ------ - ---------------- ----- -------------- - ----------------------------- ------ - ---------------- -
上面的代码与使用 for...of 循环遍历迭代器是等价的。
需要注意的是,matchAll 函数返回的迭代器只会返回字符串中匹配到的字符序列,不会返回匹配到的子组。如果需要使用子组,可以改用 exec 函数来进行匹配。
总结
matchAll 函数是 ES9 中新增的字符串函数,允许我们在字符串中使用正则表达式进行全局匹配,并返回所有匹配结果。使用 matchAll 函数可以很方便地从字符串中提取需要的信息,并且代码简洁易懂。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64c4831283d39b48818060f7