Javascript regexp 前瞻

2025年3月18日 | 阅读 5 分钟

先行断言(Lookahead)模式使 JavaScript 能够向前扫描字符串以查找指定的模式。环视(Lookaround)是先行断言和后行断言(Lookbehind)的组合表达式。只有当它们出现在另一组字符之前时,我们才能使用先行断言捕获特定的组。当我们希望在同一字符串中查找不同模式时,这很有用。

语法

以下语法显示了正向的 Javascript 正则表达式先行断言

以下语法显示了负向的 Javascript 正则表达式先行断言

说明

有两种不同类型的先行断言,它们如下:

  • 正向先行断言:它会确定搜索模式中是否包含某个特定元素,但不会匹配它。将特定模式括在 (?= 和 ) 之间即可生成正向先行断言。
  • 负向先行断言:它会检查搜索模式中是否不存在某个特定元素。将特定模式括在 (?! 和 ) 之间即可生成负向先行断言。

示例

以下示例展示了正则表达式的正向和负向先行断言。

示例 1

在此示例中,“butter” 使用正向先行断言表达式匹配“fly”或“milk”。如果第一个值出现在最后一个值之前,则输出将显示 true。如果第一个值不匹配最后一个值,则输出显示 false。

输出

下图显示了布尔值作为输出。

Javascript regexp Lookahead

示例 2

在此示例中,“butter” 使用正向先行断言表达式匹配“fly”或“milk”。我们可以看到带有先行断言模式的正则表达式可以获得所需的值。 $1 对于从模式中获取后面的值至关重要。

输出

下图显示了数据值作为输出。

Javascript regexp Lookahead

Example3

在此示例中,“butter” 使用负向先行断言表达式匹配“fly”或“milk”。如果第一个值不出现在最后一个值之前,则输出将显示 true。如果第一个值不匹配最后一个值,则输出显示 false。

输出

下图显示了布尔值作为输出。

Javascript regexp Lookahead

Example4

在此示例中,“butter” 使用负向先行断言表达式匹配“fly”或“milk”。我们可以看到带有负向先行断言模式的正则表达式可以获得输出。此示例使用 $1 显示了所需的值。 $1 对于从模式中获取不存在后面的值至关重要。

输出

下图显示了布尔值作为输出。

Javascript regexp Lookahead

示例 5

在此示例中,先行断言正则表达式用于从模式值中获取可用值。我们可以使用控制台选项卡、警报和其他输出选项卡。我们可以使用先行断言函数来处理 match 函数。此处,输出显示输入值之前的值。

输出

下图显示了布尔值作为输出。

Javascript regexp Lookahead

示例 6

在此示例中,负向先行断言正则表达式用于从模式值中获取可用值。

输出

下图显示了布尔值作为输出。

Javascript regexp Lookahead

支持的浏览器

以下浏览器支持 javascript 后行断言表达式。

  • 谷歌浏览器
  • 火狐
  • Internet Explorer
  • Opera
  • Safari

结论

javascript 先行断言表达式用于在字符串值中搜索所需的关键字。此表达式用于模式识别和操作。