node-nlp
Version:
Library for NLU (Natural Language Understanding) done in Node.js
51 lines (39 loc) • 1.4 kB
JavaScript
/*
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;
};
};