选项模式

假如我们不仅想知道文本中是否包含数字,还想知道数字之后是否跟着一个单词(pigcowchicken)或其复数形式。

那么我们可以编写三个正则表达式并轮流测试,但还有一种更好的方式。管道符号(|)表示从其左侧的模式和右侧的模式任意选择一个进行匹配。因此代码如下所示。

  1. let animalCount = /\b\d+ (pig|cow|chicken)s?\b/;
  2. console.log(animalCount.test("15 pigs"));
  3. // → true
  4. console.log(animalCount.test("15 pigchickens"));
  5. // → false

小括号可用于限制管道符号选择的模式范围,而且你可以连续使用多个管道符号,表示从多于两个模式中选择一个备选项进行匹配。