28 lines
711 B
JavaScript
28 lines
711 B
JavaScript
var commonFormatterKeys = [
|
|
'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',
|
|
'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',
|
|
'H', 'HH', 'h', 'hh', 'm', 'mm',
|
|
's', 'ss', 'S', 'SS', 'SSS',
|
|
'Z', 'ZZ', 'X', 'x'
|
|
]
|
|
|
|
function buildFormattingTokensRegExp (formatters) {
|
|
var formatterKeys = []
|
|
for (var key in formatters) {
|
|
if (formatters.hasOwnProperty(key)) {
|
|
formatterKeys.push(key)
|
|
}
|
|
}
|
|
|
|
var formattingTokens = commonFormatterKeys
|
|
.concat(formatterKeys)
|
|
.sort()
|
|
.reverse()
|
|
var formattingTokensRegExp = new RegExp(
|
|
'(\\[[^\\[]*\\])|(\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'
|
|
)
|
|
|
|
return formattingTokensRegExp
|
|
}
|
|
|
|
module.exports = buildFormattingTokensRegExp
|