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)。