import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index' import buildMatchFn from '../../../_lib/buildMatchFn/index' var matchOrdinalNumberPattern = /^第?\d+(日)?(年)?/i var parseOrdinalNumberPattern = /\d+/i var matchEraPatterns = { narrow: /^(B\.?C\.?|A\.?D\.?)/i, abbreviated: /^(紀元[前後]|西暦)/i, wide: /^(紀元[前後]|西暦)/i, } var parseEraPatterns = { narrow: [/^B/i, /^A/i], any: [/^(紀元前)/i, /^(西暦|紀元後)/i], } var matchQuarterPatterns = { narrow: /^[1234]/i, abbreviated: /^Q[1234]/i, wide: /^第[1234一二三四1234]四半期/i, } var parseQuarterPatterns = { any: [/(1|一|1)/i, /(2|二|2)/i, /(3|三|3)/i, /(4|四|4)/i], } var matchMonthPatterns = { narrow: /^([123456789]|1[012])/, abbreviated: /^([123456789]|1[012])月/i, wide: /^([123456789]|1[012])月/i, } var parseMonthPatterns = { any: [ /^1\D/, /^2/, /^3/, /^4/, /^5/, /^6/, /^7/, /^8/, /^9/, /^10/, /^11/, /^12/, ], } var matchDayPatterns = { narrow: /^[日月火水木金土]/, short: /^[日月火水木金土]/, abbreviated: /^[日月火水木金土]/, wide: /^[日月火水木金土]曜日/, } var parseDayPatterns = { any: [/^日/, /^月/, /^火/, /^水/, /^木/, /^金/, /^土/], } var matchDayPeriodPatterns = { any: /^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i, } var parseDayPeriodPatterns = { any: { am: /^(A|午前)/i, pm: /^(P|午後)/i, midnight: /^深夜|真夜中/i, noon: /^正午/i, morning: /^朝/i, afternoon: /^午後/i, evening: /^夜/i, night: /^深夜/i, }, } var match = { ordinalNumber: buildMatchPatternFn({ matchPattern: matchOrdinalNumberPattern, parsePattern: parseOrdinalNumberPattern, valueCallback: function (value) { return parseInt(value, 10) }, }), era: buildMatchFn({ matchPatterns: matchEraPatterns, defaultMatchWidth: 'wide', parsePatterns: parseEraPatterns, defaultParseWidth: 'any', }), quarter: buildMatchFn({ matchPatterns: matchQuarterPatterns, defaultMatchWidth: 'wide', parsePatterns: parseQuarterPatterns, defaultParseWidth: 'any', valueCallback: function (index) { return index + 1 }, }), month: buildMatchFn({ matchPatterns: matchMonthPatterns, defaultMatchWidth: 'wide', parsePatterns: parseMonthPatterns, defaultParseWidth: 'any', }), day: buildMatchFn({ matchPatterns: matchDayPatterns, defaultMatchWidth: 'wide', parsePatterns: parseDayPatterns, defaultParseWidth: 'any', }), dayPeriod: buildMatchFn({ matchPatterns: matchDayPeriodPatterns, defaultMatchWidth: 'any', parsePatterns: parseDayPeriodPatterns, defaultParseWidth: 'any', }), } export default match