在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 正則表達(dá)式里面的分組()疑惑?

正則表達(dá)式里面的分組()疑惑?

'abcabc'.match(/(abc)(abc)/g)

["abcabc"]
'abcabc'.match(/(abc)(abc)/)

["abcabc", "abc", "abc"]

為什么這兩個(gè)會(huì)有完全不同的結(jié)果?這個(gè)全局g到底在分組里面代表了什么?

回答
編輯回答
傲嬌范

mdn有解釋

這就是match的機(jī)制。跟g代表的“意思”關(guān)系不大,但是有沒(méi)有g(shù)確實(shí)影響返回值。

2018年5月2日 11:40
編輯回答
痞性

g就是全局匹配,但你的例子很難說(shuō)明問(wèn)題,我來(lái)改一下

先嘗試不用全局的

'abcgggabcfffabc'.match(/(abc)/)

結(jié)果是 ["abc","abc"],我來(lái)解釋一下結(jié)果,

  • 數(shù)組的第一個(gè)abc,是正則第一個(gè)匹配到的結(jié)果,也就是abcgggabcfffabc,因?yàn)闆](méi)有全局匹配,所以只匹配到第一個(gè)就結(jié)束了,那第二個(gè)是什么呢?
  • 因?yàn)?code>match方法的特性,當(dāng)沒(méi)有使用全局匹配時(shí),數(shù)組的后面將會(huì)追加分組的內(nèi)容,也就是()內(nèi)的內(nèi)容,也就是你有多少個(gè)()后面就會(huì)追加多少個(gè)數(shù)據(jù)元素;

當(dāng)使用全局時(shí)

'abcgggabcfffabc'.match(/(abc)/g)

結(jié)果是 ["abc", "abc", "abc"] 這個(gè)結(jié)果其實(shí)不用怎么解釋 abcgggabcfffabc

大概就是這樣子

2017年8月24日 01:30