js中String.match(regexp)方法进行正则匹配时,g标识符的作用

根据定义:

match方法让字符串和一个正则表达式进行匹配。它依据g标识来决定如何进行匹配。如果没有g标识,那么调用String.match(regexp)的结果与调用regexp.exec(string)的结果相同。然而,如果regexp带有g标识,那么它生成一个包含所有匹配(除捕获分组之外)的数组。

(JavaScript语言精粹(修订版)P89)

再根据官方文档描述:(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match


至于capturing groups和addtional properties到底是什么,今天正好有机会试验一下,作为记录。

目标:将以下文本中的站点名称提取出来

如果加了g标识符:

可以看到结果是一维数组,只包含了匹配整个正则表达式的一个数组元素。

如果不加g标识符:

可以看到,函数返回了第一个完整匹配、与其相关的所有匹配组(capturing groups)(正则表达式中小括号的内容,也即我们想提取的站点名称)、额外的属性(additional properties)。

原文地址:https://www.cnblogs.com/mrlonely2018/p/12608453.html