Logo
Section 1 / 6

正则表达式对象简介

了解 JavaScript 中的 RegExp 对象,并学习如何使用它来创建正则表达式。

导入

正则表达式对象简介

了解 JavaScript 中的 RegExp 对象,并学习如何使用它来创建正则表达式。

为什么要使用 RegExp 对象?

仅仅理解正则表达式在 JavaScript 中的结构,并不足以真正掌握它们。我们还需要了解语言本身提供的工具,以便有效使用正则表达式。因此,在本章中,我们将学习 JavaScript 中的 RegExp 对象,以及可以用来与正则表达式交互的字符串方法。

作为全局命名空间的一部分,JavaScript 提供了 RegExp 对象,用于表示一个正则表达式的实例。正如我们在第 2 章中提到的,还存在一种字面量语法,允许我们通过经典的写法直接创建新的正则表达式。然而,这种写法存在局限性,这正是 RegExp 对象发挥作用的地方。字面量和对象语法之间的一个重要区别在于:对象构造函数允许传入一个用引号包裹的表达式(无需开头和结尾的斜杠),这使得我们可以动态地构建正则表达式(而字面量语法仅支持常量表达式)。

示例

1let greeting = /[hH]ello/ 2 3let prefix = "hH" 4let suffix = "" 5 6let objGreeting = new RegExp("[" + prefix + "]ello" + suffix) 7console.log(objGreeting) 8 9//------------------------------- 10let prefix1 = "bB" 11let suffix1 = "w" 12 13let objGreeting1 = new RegExp("[" + prefix1 + "]ello" + suffix1) 14console.log(objGreeting1)

查看上面代码片段中的内容。可以看到,第一行只能创建一个固定的表达式。但通过使用 RegExp 对象,我们可以利用字符串拼接来创建动态的表达式。

标志作为参数

在使用对象语法时,标志并不包含在表达式内部。相反,它们作为第二个字符串参数传入。标志的种类和含义保持不变,无论使用哪种语法。关键在于知道如何正确传递它们。

正则表达式的结构

最后一个匹配项的索引