liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
exports.getKeys = function(input, pattern) {
  if (!pattern) {
    pattern = 'mustache';
  }
 
  if (exports.open && exports.close) {
    pattern = exports.open + exports.capture + exports.close;
  }
 
  if (typeof pattern === 'string') {
    if (pattern in exports) {
      pattern = exports[pattern].join('');
    }
    pattern = new RegExp(pattern, 'g');
  }
 
  var match, list = [];
  while(match = pattern.exec(input)) {
    list.push(match[1]);
  }
  return list;
};
 
exports.space = '\\s*';
exports.capture = '([a-zA-Z0-9_\\.\\$]+)';
exports.mustache = ['\\{\\{', exports.space, exports.capture, exports.space, '\\}\\}'];
exports['thin-mustache'] = ['\\{', exports.space, exports.capture, exports.space, '\\}'];
exports.glasses = ['\\{%', exports.space, exports.capture, exports.space, '%\\}'];
exports.perl = ['\\[%', exports.space, exports.capture, exports.space, '%\\]'];
exports.ejs = ['<%=', exports.space, exports.capture, exports.space, '%>'];
exports.coffee = ['#\\{', exports.space, exports.capture, exports.space, '\\}'];
exports.es6 = ['\\$\\{', exports.space, exports.capture, exports.space, '\\}'];
exports.razor = ['@', exports.capture];
exports.express = [':', exports.capture];