ES10 中的正则表达式匹配新特性

阅读时长 3 分钟读完

正则表达式是前端开发中经常用到的工具,它可以轻松地处理文本内容。在 ECMAScript 2019(也叫 ES10)中,正则表达式中加入了一些新的特性,让我们更好地使用它们。本文将介绍 ES10 中的正则表达式匹配新特性,包括正则标志,ASCII 字符类,Named Capturing Groups 和 Lookbehind Assertions。

正则标志

在 ES6 中就有 u 标志用于支持 Unicode,ES10 中新增了 s 标志用于支持换行符。在正则表达式中使用 s 标志,可以让 . 匹配任意字符,包括换行符 \n。

示例代码:

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

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

-- - ---- -------- - ------
----- --- - -----------
----- ------- - ------------------ -- ------------
展开代码

ASCII 字符类

如果你写过正则表达式,你应该知道 \w 表示 Unicode 单词字符。但是在大多数情况下,我们可能只需要匹配 ASCII 单词字符。ES10 中新增了 \p{ASCII} 或 \p{ASCII_Hex_Digit},可以匹配符合 ASCII 标准的字符。

示例代码:

Named Capturing Groups

在 ES10 中,可以使用命名捕获组来更好地管理正则表达式的匹配结果。我们可以给捕获组命名并在后续的匹配代码中通过组名来引用它们。

示例代码:

Lookbehind Assertions

回顾一下正则表达式中的 lookahead 符号 (?=) 和 (?!),它们可以匹配一个字符后面的另一个字符。ES10 中引入了 lookbehind 断言,在匹配一个字符前可以匹配另一个字符,类似于向前查看。ES10 中支持两种形式的 lookbehind 断言:后顾逆序断言和后顾零宽负预测断言。

示例代码:

以上是 ES10 中正则表达式匹配的几个新特性。我们可以通过这些新特性更轻松地处理各种文本内容。希望本文能够帮助您更好地理解这些特性,让您可以更好地使用正则表达式。

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

纠错
反馈

纠错反馈