diff --git a/js/date-picker/utils.ts b/js/date-picker/utils.ts index 2203769991..493ab6b7a3 100644 --- a/js/date-picker/utils.ts +++ b/js/date-picker/utils.ts @@ -428,9 +428,9 @@ export function flagActive(data: any[], { ...args }: any) { // extract time format from a completed date format 'YYYY-MM-DD HH:mm' -> 'HH:mm' export function extractTimeFormat(dateFormat: string = '') { - const res = dateFormat.match(/(a\s)?h{1,2}(:m{1,2})?(:s{1,2})?(\sa)?/i); - if (!res) return null; - return res[0]; + return dateFormat + .replace(/\W?Y{2,4}|\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '') + .trim(); } /** diff --git a/test/unit/date-picker/utils.test.js b/test/unit/date-picker/utils.test.js new file mode 100644 index 0000000000..a2e656c953 --- /dev/null +++ b/test/unit/date-picker/utils.test.js @@ -0,0 +1,20 @@ +import { extractTimeFormat } from '../../../js/date-picker/utils'; + +describe('utils', () => { + describe(' extractTimeFormat', () => { + it('YYYY-MM-DD HH:mm:ss', () => { + const res = extractTimeFormat('YYYY-MM-DD HH:mm:ss'); + expect(res).toBe('HH:mm:ss'); + }); + + it('YYYY-MM-DD HH时mm分ss秒', () => { + const res = extractTimeFormat('YYYY-MM-DD HH时mm分ss秒'); + expect(res).toBe('HH时mm分ss秒'); + }); + + it('YYYY-MM-DD HH时mm分ss秒SSS毫秒', () => { + const res = extractTimeFormat('YYYY-MM-DD HH时mm分ss秒SSS毫秒'); + expect(res).toBe('HH时mm分ss秒SSS毫秒'); + }); + }); +});