ES11 的正则表达式标志和局限性完全指南

阅读时长 2 分钟读完

正则表达式在前端开发中是一个非常重要的知识点。ES11 为正则表达式引入了一些新的标志和功能,本文将为您详细介绍 ES11 的正则表达式标志和局限性。

ES11 的正则表达式标志

1. s 标志

在以前,点号(.)不能匹配换行符(\n)。现在,如果在正则表达式中增加 s 标志,点号(.)就可以匹配换行符(\n)了。

2. d 标志

在以前,点号(.)可以匹配任何字符,但是不能匹配四个字节的 UTF-16 字符。现在,如果在正则表达式中增加 d 标志,点号(.)就可以匹配四个字节的 UTF-16 字符了。

-- -------------------- ---- -------
----- --- - -----

----- ----- - -----

----------------------------- -- -----

----- ------ - ------

------------------------------ -- ----

3. y 标志

y 标志表示粘连匹配(sticky matching),即从目标字符串的当前位置开始匹配。

ES11 的正则表达式局限性

1. 并行匹配

在以前的版本中,正则表达式匹配的是串行的文本,也就是只能从一个匹配到的位置继续向下匹配。ES11 引入了并行匹配,允许同时从多个位置匹配同一种模式。

2. 零宽断言不支持数字量词

ES11 的零宽断言(lookaround)并不支持数字量词。比如,/(?<!\d+)\d*/ 是不被支持的正则表达式,而/(?<!\d)\d*/ 是被支持的。

总结

ES11 引入了一些有用的正则表达式标志和功能,但也存在一些局限性。在使用正则表达式时,需要根据具体的情况来选择是否使用 ES11 的新特性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64b263aa48841e9894e9fd0d

纠错
反馈