diff --git a/Date.js b/Date.js index ad04dd4..fc43a9c 100644 --- a/Date.js +++ b/Date.js @@ -73,17 +73,24 @@ module.patchDate = function(date){ var val = parseFloat(str) str = str.trim() // check if a unit is given... - str = str == val ? dfl : str } - - var c = /(m(illi)?(-)?s(ec(ond(s)?)?)?)$/i.test(str) ? + str = str == val ? + dfl + : str } + + // NOTE: this is a small hack to avoid overcomplicating the + // pattern to still match the passed dfl unit... + str = ' '+str + var c = + (/[^a-z](m(illi)?(-)?s(ec(ond(s)?)?)?)$/i.test(str) + || /^[0-9]*(\.[0-9]+)?$/.test(str) ) ? 1 - : /s(ec(ond(s)?)?)?$/i.test(str) ? + : /[^a-z]s(ec(ond(s)?)?)?$/i.test(str) ? 1000 - : /m(in(ute(s)?)?)?$/i.test(str) ? + : /[^a-z]m(in(ute(s)?)?)?$/i.test(str) ? 1000*60 - : /h(our(s)?)?$/i.test(str) ? + : /[^a-z]h(our(s)?)?$/i.test(str) ? 1000*60*60 - : /d(ay(s)?)?$/i.test(str) ? + : /[^a-z]d(ay(s)?)?$/i.test(str) ? 1000*60*60*24 : null diff --git a/package.json b/package.json index b281c6e..db9e60c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-types", - "version": "2.0.7", + "version": "2.0.8", "description": "Generic JavaScript types and type extensions...", "main": "main.js", "scripts": { diff --git a/test.js b/test.js index fa6f0be..6ae400c 100755 --- a/test.js +++ b/test.js @@ -19,6 +19,7 @@ var containers = require('./containers') //--------------------------------------------------------------------- +/* var setups = test.Setups({ }) @@ -27,6 +28,7 @@ var modifiers = test.Modifiers({ var tests = test.Tests({ }) +//*/ var cases = test.Cases({ @@ -67,13 +69,6 @@ var cases = test.Cases({ }, // Date.js - // - toShortDate - // - getTimeStamp - // - setTimeStamp - // - timeStamp - // - fromTimeStamp - // - str2ms - // XXX Date: function(assert){ var d = new Date() @@ -96,19 +91,21 @@ var cases = test.Cases({ assert(a + '000' == Date.fromTimeStamp(a).getTimeStamp(true)) assert(b == Date.fromTimeStamp(b).getTimeStamp(true)) - assert(Date.str2ms('1') == 1) - assert(Date.str2ms('1ms') == 1) - assert(Date.str2ms('1s') == 1000) - assert(Date.str2ms('1m') == 60*1000) - assert(Date.str2ms('1h') == 60*60*1000) - assert(Date.str2ms('1d') == 24*60*60*1000) + assert(Date.str2ms('1') == 1, 'Date.str2ms("1")') + assert(Date.str2ms(1) == 1, 'Date.str2ms(1)') + assert(Date.str2ms('1ms') == 1, 'Date.str2ms("1ms")') + assert(Date.str2ms('1s') == 1000, 'Date.str2ms("1s")') + assert(Date.str2ms('1m') == 60*1000, 'Date.str2ms("1m")') + assert(Date.str2ms('1h') == 60*60*1000, 'Date.str2ms("1h")') + assert(Date.str2ms('1d') == 24*60*60*1000, 'Date.str2ms("1d")') - assert(Date.str2ms('5 sec') == 5000) - assert(Date.str2ms('5 second') == 5000) - assert(Date.str2ms('5 seconds') == 5000) - assert(Date.str2ms('2 hour') == 2*60*60*1000) - // XXX for odd some reason this fails... - //assert(Date.str2ms('2 hours') == 2*60*60*1000) + assert(Date.str2ms('5 sec') == 5000, 'Date.str2ms("1 sec")') + assert(Date.str2ms('5 second') == 5000, 'Date.str2ms("1 second")') + assert(Date.str2ms('5 seconds') == 5000, 'Date.str2ms("1 seconds")') + + assert(Date.str2ms('2hour') == 2*60*60*1000, 'Date.str2ms("1hour")') + assert(Date.str2ms('2 Hour') == 2*60*60*1000, 'Date.str2ms("1 Hour")') + assert(Date.str2ms('2 hours') == 2*60*60*1000, 'Date.str2ms("1 hours")') }, // containers.js