From 9ef1714a03bbd5908206c7d3bfb32264d9d206af Mon Sep 17 00:00:00 2001 From: iamkun Date: Mon, 4 Jan 2021 22:28:54 +0800 Subject: [PATCH] fix: fix parse regex bug (#1307) fix #1305 --- src/constant.js | 2 +- test/parse.test.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/constant.js b/src/constant.js index 875ef02b4..6be602e2c 100644 --- a/src/constant.js +++ b/src/constant.js @@ -26,5 +26,5 @@ export const FORMAT_DEFAULT = 'YYYY-MM-DDTHH:mm:ssZ' export const INVALID_DATE_STRING = 'Invalid Date' // regex -export const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?\.?(\d+)?$/ +export const REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/ export const REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g diff --git a/test/parse.test.js b/test/parse.test.js index 1941b7335..1dd38207e 100644 --- a/test/parse.test.js +++ b/test/parse.test.js @@ -174,6 +174,14 @@ describe('REGEX_PARSE', () => { expect(d).toBe(null) }) + // format used in timezone plugin utcString + it('2021-1-4 0:42:53:000', () => { + const date = '2021-1-4 0:42:53:000' + const d = date.match(REGEX_PARSE) + expect(dayjs(date).valueOf()).toBe(moment(date).valueOf()) + expect(d.join('-')).toBe('2021-1-4 0:42:53:000-2021-1-4-0-42-53-000') + }) + it('2020-12-31T18:00:00-05:00 (no regex match)', () => { const date = '2020-12-31T18:00:00-05:00' const d = date.match(REGEX_PARSE)