在 ES11 中,新增了一个方法 String.prototype.matchAll,该方法可以用于在字符串中查找所有匹配正则表达式的子串,并返回一个迭代器。
语法
string.matchAll(regexp)
参数
regexp
:一个正则表达式对象。
返回值
一个迭代器,包含所有匹配正则表达式的子串。
示例
-- -------------------- ---- ------- ----- --- - ------ ------ ----- ----- - -------- ----- ------- - ------------------- --- ------ ----- -- -------- - ------------------ - -- -- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ -- ------ ------ ------- ------- ---------- -- ----- ------ --- ------ ------ ------- ------- ----------
使用场景
提取字符串中的所有链接
-- -------------------- ---- ------- ----- --- - ------ -- ------- -- ----------------------- --- -- ---- -- ------------------------- ----- ----- - -------------------- ----- ------- - ------------------- --- ------ ----- -- -------- - --------------------- - -- -- -- ------------------------- -- --------------------------
将字符串中的所有日期格式转换为 ISO 格式
-- -------------------- ---- ------- ----- --- - ------ -- ---------- --- -------- -- ----------- ----- ----- - -------------------------- ----- ------- - ------------------- --- ------ ----- -- -------- - ----- ----------- ----- ------ ---- - ----- ----- ------- - --------------------------------------- -------------------- - -- -- -- -------------------------- -- --------------------------
总结
String.prototype.matchAll 方法可以方便地提取字符串中的所有匹配正则表达式的子串,可以在很多场景下使用。需要注意的是,该方法返回一个迭代器,而不是数组,需要使用 for...of 循环遍历。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65e43dbc1886fbafa405b1de