summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/zh-Hant/ZHHantDateParser.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/zh-Hant/ZHHantDateParser.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/zh-Hant/ZHHantDateParser.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/zh-Hant/ZHHantDateParser.js b/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/zh-Hant/ZHHantDateParser.js
new file mode 100644
index 00000000..785430e3
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/zh-Hant/ZHHantDateParser.js
@@ -0,0 +1,72 @@
+/*
+
+
+*/
+
+var moment = require('moment');
+var Parser = require('../parser').Parser;
+var ParsedResult = require('../../result').ParsedResult;
+
+var util = require('../../utils/ZH-Hant.js');
+
+var PATTERN = new RegExp(
+ '(\\d{2,4}|[' + Object.keys(util.NUMBER).join('') + ']{2,4})?' +
+ '(?:\\s*)' +
+ '(?:年)?' +
+ '(?:[\\s|,|,]*)' +
+ '(\\d{1,2}|[' + Object.keys(util.NUMBER).join('') + ']{1,2})' +
+ '(?:\\s*)' +
+ '(?:月)' +
+ '(?:\\s*)' +
+ '(\\d{1,2}|[' + Object.keys(util.NUMBER).join('') + ']{1,2})?' +
+ '(?:\\s*)' +
+ '(?:日|號)?'
+);
+
+var YEAR_GROUP = 1;
+var MONTH_GROUP = 2;
+var DAY_GROUP = 3;
+
+exports.Parser = function ZHHantDateParser() {
+
+ Parser.apply(this, arguments);
+
+ this.pattern = function() {
+ return PATTERN;
+ };
+
+ this.extract = function(text, ref, match, opt) {
+ var startMoment = moment(ref);
+ var result = new ParsedResult({
+ text: match[0],
+ index: match.index,
+ ref: ref,
+ });
+
+ //Month
+ var month = parseInt(match[MONTH_GROUP]);
+ if (isNaN(month)) month = util.zhStringToNumber(match[MONTH_GROUP]);
+ result.start.assign('month', month);
+
+ //Day
+ if (match[DAY_GROUP]) {
+ var day = parseInt(match[DAY_GROUP]);
+ if (isNaN(day)) day = util.zhStringToNumber(match[DAY_GROUP]);
+ result.start.assign('day', day);
+ } else {
+ result.start.imply('day', startMoment.date());
+ }
+
+ //Year
+ if (match[YEAR_GROUP]) {
+ var year = parseInt(match[YEAR_GROUP]);
+ if (isNaN(year)) year = util.zhStringToYear(match[YEAR_GROUP]);
+ result.start.assign('year', year);
+ } else {
+ result.start.imply('year', startMoment.year());
+ }
+
+ result.tags.ZHHantDateParser = true;
+ return result;
+ };
+};