index.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import buildMatchPatternFn from "../../../_lib/buildMatchPatternFn/index.js";
  2. import buildMatchFn from "../../../_lib/buildMatchFn/index.js";
  3. var matchOrdinalNumberPattern = /^第?\d+(年|四半期|月|週|日|時|分|秒)?/i;
  4. var parseOrdinalNumberPattern = /\d+/i;
  5. var matchEraPatterns = {
  6. narrow: /^(B\.?C\.?|A\.?D\.?)/i,
  7. abbreviated: /^(紀元[前後]|西暦)/i,
  8. wide: /^(紀元[前後]|西暦)/i
  9. };
  10. var parseEraPatterns = {
  11. narrow: [/^B/i, /^A/i],
  12. any: [/^(紀元前)/i, /^(西暦|紀元後)/i]
  13. };
  14. var matchQuarterPatterns = {
  15. narrow: /^[1234]/i,
  16. abbreviated: /^Q[1234]/i,
  17. wide: /^第[1234一二三四1234]四半期/i
  18. };
  19. var parseQuarterPatterns = {
  20. any: [/(1|一|1)/i, /(2|二|2)/i, /(3|三|3)/i, /(4|四|4)/i]
  21. };
  22. var matchMonthPatterns = {
  23. narrow: /^([123456789]|1[012])/,
  24. abbreviated: /^([123456789]|1[012])月/i,
  25. wide: /^([123456789]|1[012])月/i
  26. };
  27. var parseMonthPatterns = {
  28. any: [/^1\D/, /^2/, /^3/, /^4/, /^5/, /^6/, /^7/, /^8/, /^9/, /^10/, /^11/, /^12/]
  29. };
  30. var matchDayPatterns = {
  31. narrow: /^[日月火水木金土]/,
  32. short: /^[日月火水木金土]/,
  33. abbreviated: /^[日月火水木金土]/,
  34. wide: /^[日月火水木金土]曜日/
  35. };
  36. var parseDayPatterns = {
  37. any: [/^日/, /^月/, /^火/, /^水/, /^木/, /^金/, /^土/]
  38. };
  39. var matchDayPeriodPatterns = {
  40. any: /^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i
  41. };
  42. var parseDayPeriodPatterns = {
  43. any: {
  44. am: /^(A|午前)/i,
  45. pm: /^(P|午後)/i,
  46. midnight: /^深夜|真夜中/i,
  47. noon: /^正午/i,
  48. morning: /^朝/i,
  49. afternoon: /^午後/i,
  50. evening: /^夜/i,
  51. night: /^深夜/i
  52. }
  53. };
  54. var match = {
  55. ordinalNumber: buildMatchPatternFn({
  56. matchPattern: matchOrdinalNumberPattern,
  57. parsePattern: parseOrdinalNumberPattern,
  58. valueCallback: function valueCallback(value) {
  59. return parseInt(value, 10);
  60. }
  61. }),
  62. era: buildMatchFn({
  63. matchPatterns: matchEraPatterns,
  64. defaultMatchWidth: 'wide',
  65. parsePatterns: parseEraPatterns,
  66. defaultParseWidth: 'any'
  67. }),
  68. quarter: buildMatchFn({
  69. matchPatterns: matchQuarterPatterns,
  70. defaultMatchWidth: 'wide',
  71. parsePatterns: parseQuarterPatterns,
  72. defaultParseWidth: 'any',
  73. valueCallback: function valueCallback(index) {
  74. return index + 1;
  75. }
  76. }),
  77. month: buildMatchFn({
  78. matchPatterns: matchMonthPatterns,
  79. defaultMatchWidth: 'wide',
  80. parsePatterns: parseMonthPatterns,
  81. defaultParseWidth: 'any'
  82. }),
  83. day: buildMatchFn({
  84. matchPatterns: matchDayPatterns,
  85. defaultMatchWidth: 'wide',
  86. parsePatterns: parseDayPatterns,
  87. defaultParseWidth: 'any'
  88. }),
  89. dayPeriod: buildMatchFn({
  90. matchPatterns: matchDayPeriodPatterns,
  91. defaultMatchWidth: 'any',
  92. parsePatterns: parseDayPeriodPatterns,
  93. defaultParseWidth: 'any'
  94. })
  95. };
  96. export default match;