导入
定义正则表达式
了解在 JavaScript 中定义正则表达式的两种方式。
现在我们已经把正式的内容讲完了,接下来进入核心部分,怎么样?
在本章中,我们将详细介绍 JavaScript 所使用的正则表达式语法所需的所有内容。记住:虽然存在多种类似的正则表达式实现,但我们这里采用的是 PCRE 的一个子集。
定义正则表达式的两种方式
让我们从基础开始。在 JavaScript 中,定义正则表达式有两种不同的方法,各有优缺点:
-
可以使用字面量语法,就像之前我们在 Perl 中看到的那样,通过用
/字符开头和结尾来定义一个正则表达式。 -
或者可以将字符串作为参数传递给
RegExp对象的构造函数。在这种情况下,不需要使用/字符。
下面的代码片段展示了这两种方式的具体写法:
1let myRegExp = /[2b|^2b]/ 2 3let myOtherRegExp = new RegExp('[2b|^2b]') 4 5console.log(myRegExp) 6console.log(myOtherRegExp)
使用字面量语法定义正则表达式的局限性
第 1 行使用的字面量语法是定义正则表达式的一种更直接的方式。这种方式更直观,无需添加额外的关键字。但它的缺点在于:如果你需要根据变量的值动态创建正则表达式,就无法通过字面量语法进行拼接,这时你只能选择第二种方式——使用 RegExp 对象。借助这个对象,你可以轻松地从一个简单的字符串创建新的正则表达式实例。
此外,是否使用标志位(flags)也会带来一些差异,我们稍后会进一步展开讨论。