怪异的返回javascript正则表达式没有标记' g'

时间:2015-10-19 02:34:43

标签: javascript regex node.js

code = DAK~ 800 SUB~10/21/2015 CAK~10/21/2015

我只想获得800

我使用这个正则表达式:

code_fix = match(/([0-9]){3}/g) 它返回= [ '800', '201', '201' ]

但是当我尝试使用没有标记g的正则表达式时,为什么我的结果如下:

[ '800',
  '0',
  index: 21,
  input: 'DAK~ 800 SUB~10/21/2015 CAK~10/21/2015' ]

2 个答案:

答案 0 :(得分:1)

你需要一个单词边界。试试这个:

/\b([0-9]){3}\b/g

有关字边界的更多信息,请参阅此reference

答案 1 :(得分:0)

如果使用([0-9]){3},它也会匹配,800全部匹配, 0([0-9])的小组匹配,与0中的最后800匹配