blob: 51e0c7c68fdac8a335f6e2e66170d6eccce02649 (
plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
/*
Month/Year date format with slash "/" (also "-" and ".") between numbers
- 11/05
- 06/2005
*/
var moment = require('moment');
var Parser = require('../parser').Parser;
var ParsedResult = require('../../result').ParsedResult;
var PATTERN = new RegExp('(^|[^\\d/]\\s+|[^\\w\\s])' +
'([0-9]|0[1-9]|1[012])/([0-9]{4})' +
'([^\\d/]|$)', 'i');
var OPENNING_GROUP = 1;
var ENDING_GROUP = 4;
var MONTH_GROUP = 2;
var YEAR_GROUP = 3;
exports.Parser = function ENSlashMonthFormatParser(argument) {
Parser.apply(this, arguments);
this.pattern = function () { return PATTERN; };
this.extract = function(text, ref, match, opt){
var index = match.index + match[OPENNING_GROUP].length;
var text = match[0].substr(match[OPENNING_GROUP].length, match[0].length - (1 + match[ENDING_GROUP].length)).trim();
var result = new ParsedResult({
text: text,
index: index,
ref: ref,
});
var date = null;
var year = match[YEAR_GROUP] ;
var month = match[MONTH_GROUP];
var day = 1;
month = parseInt(month);
year = parseInt(year);
result.start.imply('day', day);
result.start.assign('month', month);
result.start.assign('year', year);
result.tags['ENSlashMonthFormatParser'] = true;
return result;
};
};
|