shouldn't need the split / reverse. you can do multi-match with something like this:

var re = /.../g;
var match;
var result = [];
while (match = re.exec(input)) {
  result.push(Number(match[0]));
}
return result;