forked from date-fns/date-fns
/
index.js
122 lines (109 loc) · 2.75 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js'
import buildMatchFn from '../../../_lib/buildMatchFn/index.js'
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