JS中的贪婪全局RegExp匹配

时间:2013-07-28 19:51:51

标签: javascript

我有RegExp

RegExp('f(o+)', 'g').exec('fofoofooofoooo')

在结果数组res中,我希望得到:

res[1] === 'o'
res[2] === 'oo'
res[3] === 'ooo'
res[4] === 'oooo'

但我得到了:

res === [ 'fo',
  'o',
  index: 0,
  input: 'fofoofooofoooo' ]

有没有办法获得我的预期结果?我刚收到第一场比赛。

1 个答案:

答案 0 :(得分:3)

使用.match代替.exec

'fofoofooofoooo'.match(RegExp('f(o+)', 'g')) // ["fo", "foo", "fooo", "foooo"]
  

用于在将字符串与正则表达式匹配时检索匹配项。