Logo
Section 1 / 12

定义正则表达式

了解在 JavaScript 中定义正则表达式的两种方式。

导入

定义正则表达式

了解在 JavaScript 中定义正则表达式的两种方式。

现在我们已经把正式的内容讲完了,接下来进入核心部分,怎么样?

在本章中,我们将详细介绍 JavaScript 所使用的正则表达式语法所需的所有内容。记住:虽然存在多种类似的正则表达式实现,但我们这里采用的是 PCRE 的一个子集。

定义正则表达式的两种方式

让我们从基础开始。在 JavaScript 中,定义正则表达式有两种不同的方法,各有优缺点:

  1. 可以使用字面量语法,就像之前我们在 Perl 中看到的那样,通过用 / 字符开头和结尾来定义一个正则表达式。

  2. 或者可以将字符串作为参数传递给 RegExp 对象的构造函数。在这种情况下,不需要使用 / 字符。

下面的代码片段展示了这两种方式的具体写法:

1let myRegExp = /[2b|^2b]/ 2 3let myOtherRegExp = new RegExp('[2b|^2b]') 4 5console.log(myRegExp) 6console.log(myOtherRegExp)

使用字面量语法定义正则表达式的局限性

第 1 行使用的字面量语法是定义正则表达式的一种更直接的方式。这种方式更直观,无需添加额外的关键字。但它的缺点在于:如果你需要根据变量的值动态创建正则表达式,就无法通过字面量语法进行拼接,这时你只能选择第二种方式——使用 RegExp 对象。借助这个对象,你可以轻松地从一个简单的字符串创建新的正则表达式实例。

此外,是否使用标志位(flags)也会带来一些差异,我们稍后会进一步展开讨论。

正则表达式的开始

正则表达式内部包含什么?