index.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import buildMatchFn from "../../../_lib/buildMatchFn/index.js";
  2. import buildMatchPatternFn from "../../../_lib/buildMatchPatternFn/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;