index.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
  7. abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
  8. wide: /^(기원전|서기)/i
  9. };
  10. var parseEraPatterns = {
  11. any: [/^(bc|기원전)/i, /^(ad|서기)/i]
  12. };
  13. var matchQuarterPatterns = {
  14. narrow: /^[1234]/i,
  15. abbreviated: /^q[1234]/i,
  16. wide: /^[1234]사?분기/i
  17. };
  18. var parseQuarterPatterns = {
  19. any: [/1/i, /2/i, /3/i, /4/i]
  20. };
  21. var matchMonthPatterns = {
  22. narrow: /^(1[012]|[123456789])/,
  23. abbreviated: /^(1[012]|[123456789])월/i,
  24. wide: /^(1[012]|[123456789])월/i
  25. };
  26. var parseMonthPatterns = {
  27. any: [/^1월?$/, /^2/, /^3/, /^4/, /^5/, /^6/, /^7/, /^8/, /^9/, /^10/, /^11/, /^12/]
  28. };
  29. var matchDayPatterns = {
  30. narrow: /^[일월화수목금토]/,
  31. short: /^[일월화수목금토]/,
  32. abbreviated: /^[일월화수목금토]/,
  33. wide: /^[일월화수목금토]요일/
  34. };
  35. var parseDayPatterns = {
  36. any: [/^일/, /^월/, /^화/, /^수/, /^목/, /^금/, /^토/]
  37. };
  38. var matchDayPeriodPatterns = {
  39. any: /^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i
  40. };
  41. var parseDayPeriodPatterns = {
  42. any: {
  43. am: /^(am|오전)/i,
  44. pm: /^(pm|오후)/i,
  45. midnight: /^자정/i,
  46. noon: /^정오/i,
  47. morning: /^아침/i,
  48. afternoon: /^오후/i,
  49. evening: /^저녁/i,
  50. night: /^밤/i
  51. }
  52. };
  53. var match = {
  54. ordinalNumber: buildMatchPatternFn({
  55. matchPattern: matchOrdinalNumberPattern,
  56. parsePattern: parseOrdinalNumberPattern,
  57. valueCallback: function valueCallback(value) {
  58. return parseInt(value, 10);
  59. }
  60. }),
  61. era: buildMatchFn({
  62. matchPatterns: matchEraPatterns,
  63. defaultMatchWidth: 'wide',
  64. parsePatterns: parseEraPatterns,
  65. defaultParseWidth: 'any'
  66. }),
  67. quarter: buildMatchFn({
  68. matchPatterns: matchQuarterPatterns,
  69. defaultMatchWidth: 'wide',
  70. parsePatterns: parseQuarterPatterns,
  71. defaultParseWidth: 'any',
  72. valueCallback: function valueCallback(index) {
  73. return index + 1;
  74. }
  75. }),
  76. month: buildMatchFn({
  77. matchPatterns: matchMonthPatterns,
  78. defaultMatchWidth: 'wide',
  79. parsePatterns: parseMonthPatterns,
  80. defaultParseWidth: 'any'
  81. }),
  82. day: buildMatchFn({
  83. matchPatterns: matchDayPatterns,
  84. defaultMatchWidth: 'wide',
  85. parsePatterns: parseDayPatterns,
  86. defaultParseWidth: 'any'
  87. }),
  88. dayPeriod: buildMatchFn({
  89. matchPatterns: matchDayPeriodPatterns,
  90. defaultMatchWidth: 'any',
  91. parsePatterns: parseDayPeriodPatterns,
  92. defaultParseWidth: 'any'
  93. })
  94. };
  95. export default match;