chrono-node
Advanced tools
Comparing version 1.0.10 to 1.0.11
{ | ||
"name": "chrono", | ||
"main": "chrono.js", | ||
"version": "1.0.5", | ||
"version": "1.0.11", | ||
"homepage": "https://github.com/wanasit/chrono", | ||
@@ -6,0 +6,0 @@ "authors": [ |
@@ -10,3 +10,3 @@ { | ||
"license": "MIT", | ||
"version": "1.0.10", | ||
"version": "1.0.11", | ||
"directories": { | ||
@@ -13,0 +13,0 @@ "source": "./src", |
@@ -40,3 +40,3 @@ /* | ||
var text = match[0].substr(match[1]); | ||
var text = match[0].substr(match[1].length); | ||
var index = match.index + match[1].length; | ||
@@ -43,0 +43,0 @@ |
@@ -12,8 +12,11 @@ /* | ||
var PATTERN = new RegExp('(\\W|^)' + | ||
'((?:sun|mon|tues?|wed(?:nes)?|thu(?:rs?)?|fri|sat(?:ur)?)(?:day)?)?' + | ||
'\\s*\\,?\\s*' + | ||
'(?:' + | ||
'((?:sun|mon|tues?|wed(?:nes)?|thu(?:rs?)?|fri|sat(?:ur)?)(?:day)?)' + | ||
'\\s*\\,?\\s*' + | ||
')?' + | ||
'([0-9]{1,2})[\\/\\.\\-]([0-9]{1,2})' + | ||
'(' + | ||
'(?:' + | ||
'[\\/\\.\\-]' + | ||
'([0-9]{4}|[0-9]{2}))?' + | ||
'([0-9]{4}|[0-9]{2})' + | ||
')?' + | ||
'(\\W|$)', 'i'); | ||
@@ -23,3 +26,12 @@ | ||
'thursday': 4, 'thur': 4,'friday': 5, 'fri': 5,'saturday': 6, 'sat': 6,} | ||
var OPENNING_GROUP = 1; | ||
var ENDING_GROUP = 6; | ||
var WEEKDAY_GROUP = 2; | ||
var MONTH_GROUP = 3; | ||
var DAY_GROUP = 4; | ||
var YEAR_GROUP = 5; | ||
exports.Parser = function ENSlashDateFormatParser(argument) { | ||
@@ -31,3 +43,3 @@ Parser.apply(this, arguments); | ||
if(match[1] == '/' || match[7] == '/') { | ||
if(match[OPENNING_GROUP] == '/' || match[ENDING_GROUP] == '/') { | ||
// Long skip, if there is some overlapping like: | ||
@@ -40,4 +52,6 @@ // XX[/YY/ZZ] | ||
var index = match.index + match[1].length; | ||
var text = match[0].substr(match[1].length, match[0].length - match[7].length); | ||
var index = match.index + match[OPENNING_GROUP].length; | ||
var text = match[0].substr(match[OPENNING_GROUP].length, match[0].length - match[ENDING_GROUP].length); | ||
var result = new ParsedResult({ | ||
@@ -49,13 +63,13 @@ text: text, | ||
if(text.match(/^\d.\d$/)) return; | ||
if(text.match(/^\d\.\d$/)) return; | ||
if(text.match(/^\d\.\d{1,2}\.\d{1,2}$/)) return; | ||
// MM/dd -> OK | ||
// MM.dd -> NG | ||
if(!match[6] && match[0].indexOf('/') < 0) return; | ||
if(!match[YEAR_GROUP] && match[0].indexOf('/') < 0) return; | ||
var date = null; | ||
var year = match[6] || moment(ref).year() + ''; | ||
var month = match[3]; | ||
var day = match[4]; | ||
var year = match[YEAR_GROUP] || moment(ref).year() + ''; | ||
var month = match[MONTH_GROUP]; | ||
var day = match[DAY_GROUP]; | ||
@@ -97,4 +111,4 @@ month = parseInt(month); | ||
//Day of week | ||
if(match[2]) { | ||
result.start.assign('weekday', DAYS_OFFSET[match[2].toLowerCase()]); | ||
if(match[WEEKDAY_GROUP]) { | ||
result.start.assign('weekday', DAYS_OFFSET[match[WEEKDAY_GROUP].toLowerCase()]); | ||
} | ||
@@ -101,0 +115,0 @@ |
@@ -17,3 +17,3 @@ /* | ||
"(?:" + | ||
"(?:\\.|\\:|\\:)(\\d{1,2})" + | ||
"(?:\\:|\\:)(\\d{2})" + | ||
")?" + | ||
@@ -137,4 +137,6 @@ ")?" + | ||
// Pattern "YY.YY -XXXX" is more like timezone offset | ||
if (match[0].match(/^\s*(\+|\-)\d{3,4}$/)) { | ||
if (match[0].match(/^\s*(\+|\-)\s*\d{3,4}$/)) { | ||
return result; | ||
@@ -141,0 +143,0 @@ } |
@@ -131,2 +131,27 @@ | ||
} | ||
var text = "- 1994-11-05T13:15:30Z"; | ||
var results = chrono.parse(text, new Date(2012,7,8)); | ||
ok(results.length == 1, JSON.stringify( results ) ) | ||
var result = results[0]; | ||
if(result){ | ||
ok(result.start, JSON.stringify(result.start) ) | ||
ok(result.start.get('year') == 1994, 'Test Result - (Year) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('month') == 11, 'Test Result - (Month) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('day') == 5, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('hour') == 13, 'Test Result - (Hour) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('minute') == 15, 'Test Result - (Minute) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('second') == 30, 'Test Result - (Second) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('timezoneOffset') == 0, 'Test Result - (Second) ' + JSON.stringify(result.start) ) | ||
ok(result.index == 2, result.index) | ||
ok(result.text == '1994-11-05T13:15:30Z', result.text) | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(784041330000); | ||
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.start.date() ' + resultDate +'/' +expectDate) | ||
} | ||
}); | ||
@@ -133,0 +158,0 @@ |
@@ -23,2 +23,21 @@ | ||
var text = ": 8/1/2012"; | ||
var results = chrono.parse(text, new Date(2012,7,10)); | ||
ok(results.length == 1, JSON.stringify( results ) ) | ||
var result = results[0]; | ||
if(result){ | ||
ok(result.start, JSON.stringify(result.start) ) | ||
ok(result.start.get('year') == 2012, 'Test Result - (Year) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('month') == 8, 'Test Result - (Month) ' + JSON.stringify(result.start) ) | ||
ok(result.start.get('day') == 1, 'Test Result - (Day) ' + JSON.stringify(result.start) ) | ||
ok(result.index == 2, 'Wrong index') | ||
ok(result.text == '8/1/2012', result.text ) | ||
var resultDate = result.start.date(); | ||
var expectDate = new Date(2012, 8-1, 1, 12); | ||
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate) | ||
} | ||
var text = "8/10"; | ||
@@ -25,0 +44,0 @@ var results = chrono.parse(text, new Date(2012,7,10)); |
@@ -94,2 +94,24 @@ | ||
ok(results[0].text == '2014-07-07T04:00:00Z', JSON.stringify(results)) | ||
var text = "1.5.3 - 2015-09-24"; | ||
var results = chrono.parse(text); | ||
ok(results.length == 1, JSON.stringify(results) ) | ||
ok(results[0].text == '2015-09-24', JSON.stringify(results)) | ||
var text = "1.5.30 - 2015-09-24"; | ||
var results = chrono.parse(text); | ||
ok(results.length == 1, JSON.stringify(results) ) | ||
ok(results[0].text == '2015-09-24', JSON.stringify(results)) | ||
var text = "1.50.30 - 2015-09-24"; | ||
var results = chrono.parse(text); | ||
ok(results.length == 1, JSON.stringify(results) ) | ||
ok(results[0].text == '2015-09-24', JSON.stringify(results)) | ||
}) | ||
@@ -135,2 +157,14 @@ | ||
var text = "Version: 1.1.3"; | ||
var results = chrono.parse(text); | ||
ok(results.length == 0, JSON.stringify(results) ) | ||
var text = "Version: 1.1.30"; | ||
var results = chrono.parse(text); | ||
ok(results.length == 0, JSON.stringify(results) ) | ||
var text = "Version: 1.10.30"; | ||
var results = chrono.parse(text); | ||
ok(results.length == 0, JSON.stringify(results) ) | ||
}); | ||
@@ -137,0 +171,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1619317
11760