Moment: isValidκ°€ μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

에 λ§Œλ“  2019λ…„ 10μ›” 28일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: moment/moment

버그 μ„€λͺ…
isValidκ°€ μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

μž¬ν˜„ν•˜κΈ° μœ„ν•΄
λ™μž‘μ„ μž¬ν˜„ν•˜λŠ” 단계:
moment('Chicago Illinois 46702').isValid(); // true

μ˜ˆμƒλ˜λŠ” 행동
거짓이어야 ν•œλ‹€

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

const allPossibleFormats = [
  'D MMMM YYYY',
  'D MMMM YYYY HH:mm',
  'DD-MM-YY',
  'DD-MM-YYYY',
  'DD.MM.YYYY',
  'DD.MM.YYYY HH:mm',
  'DD/MM/YY',
  'DD/MM/YYYY',
  'DD/MM/YYYY HH:mm:ss',
  'HH:mm:ss',
  'M/D/YYYY',
  'D/M/YYYY',
  'MM-DD-YY',
  'MM-DD-YYYY',
  'MM-DD-YYYY HH:mm:ss',
  'MM/DD/YY',
  'MM/DD/YYYY',
  'MM/DD/YYYY HH:mm:ss',
  'MMM D YYYY',
  'MMM D YYYY LT',
  'MMMM Do YYYY',
  'MMMM Do YYYY LT',
  'YYYY-DD-MM HH:mm:ss',
  'YYYY-MM',
  'YYYY-MM-DD',
  'YYYY-MM-DD HH:mm',
  'YYYY-MM-DD HH:mm:ss',
  'YYYY-MM-DD LT',
  'YYYY-MM-DD h:mm:ss A',
  'YYYY-MM-DDTHH:mm:ssZ',
  'ddd, MMM D YYYY LT',
  'dddd D MMMM YYYY HH:mm',
  'dddd, MMMM Do YYYY LT'
];

moment('Chicago Illinois 46702', allPossibleFormats, true).isValid(); // false
moment('18/01/1944', allPossibleFormats, true).isValid(); // true
moment('22-10-2020', allPossibleFormats, true).isValid(); // true
moment('1944-01-18 12:00:00', allPossibleFormats, true).isValid(); // true
moment('2001-01-01 00:00:00', allPossibleFormats, true).isValid(); // true
moment('2001-01', allPossibleFormats, true).isValid(); // true

λ˜ν•œ allPossibleFormats 배열을 ν™•μž₯ν•˜κ³  λ‹€λ₯Έ λ‚ μ§œ/λ‚ μ§œ/μ‹œκ°„ ν˜•μ‹μ„ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  4 λŒ“κΈ€

μœ νš¨ν•œ λ‚ μ§œλ‘œ λ³€κ²½λ˜μ—ˆμœΌλ―€λ‘œ μœ νš¨ν•©λ‹ˆλ‹€.

new Date('Chicago Illinois 46702'); // Wed Jan 01 46702 00:00:00 GMT+0000 (Greenwich Mean Time)

κ·ΈλŸ¬λ‚˜ ... λ˜ν•œ μˆœκ°„λΆ€ν„° κ²½κ³ κ°€ ν‘œμ‹œλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

moment('Chicago Illinois 46702').isValid(); 

JavaScript μ½˜μ†”μ—μ„œ:

지원 쀑단 κ²½κ³ : 제곡된 값이 μΈμ‹λ˜λŠ” RFC2822 λ˜λŠ” ISO ν˜•μ‹μ΄ μ•„λ‹™λ‹ˆλ‹€. μˆœκ°„ 생성은 λͺ¨λ“  λΈŒλΌμš°μ €μ™€ λ²„μ „μ—μ„œ μ‹ λ’°ν•  수 μ—†λŠ” js Date()둜 λŒ€μ²΄λ©λ‹ˆλ‹€. λΉ„ RFC2822/ISO λ‚ μ§œ ν˜•μ‹μ€ ꢌμž₯λ˜μ§€ μ•ŠμœΌλ©° ν–₯ν›„ μ£Όμš” λ¦΄λ¦¬μŠ€μ—μ„œ μ œκ±°λ©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ http://momentjs.com/guides/#/warnings/js -date/λ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

κ·Έλž˜λ„ 이건 μ–΄λ•Œ

moment('22-10-2020', 'dd-MM-yyyy', true).isValid();

거짓을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

νŽΈμ§‘ν•˜λ‹€
λ‚˜λŠ” λ³Έλ‹€: moment('22-10-2020', 'DD-MM-YYYY', true).isValid(); 곡μž₯

const allPossibleFormats = [
  'D MMMM YYYY',
  'D MMMM YYYY HH:mm',
  'DD-MM-YY',
  'DD-MM-YYYY',
  'DD.MM.YYYY',
  'DD.MM.YYYY HH:mm',
  'DD/MM/YY',
  'DD/MM/YYYY',
  'DD/MM/YYYY HH:mm:ss',
  'HH:mm:ss',
  'M/D/YYYY',
  'D/M/YYYY',
  'MM-DD-YY',
  'MM-DD-YYYY',
  'MM-DD-YYYY HH:mm:ss',
  'MM/DD/YY',
  'MM/DD/YYYY',
  'MM/DD/YYYY HH:mm:ss',
  'MMM D YYYY',
  'MMM D YYYY LT',
  'MMMM Do YYYY',
  'MMMM Do YYYY LT',
  'YYYY-DD-MM HH:mm:ss',
  'YYYY-MM',
  'YYYY-MM-DD',
  'YYYY-MM-DD HH:mm',
  'YYYY-MM-DD HH:mm:ss',
  'YYYY-MM-DD LT',
  'YYYY-MM-DD h:mm:ss A',
  'YYYY-MM-DDTHH:mm:ssZ',
  'ddd, MMM D YYYY LT',
  'dddd D MMMM YYYY HH:mm',
  'dddd, MMMM Do YYYY LT'
];

moment('Chicago Illinois 46702', allPossibleFormats, true).isValid(); // false
moment('18/01/1944', allPossibleFormats, true).isValid(); // true
moment('22-10-2020', allPossibleFormats, true).isValid(); // true
moment('1944-01-18 12:00:00', allPossibleFormats, true).isValid(); // true
moment('2001-01-01 00:00:00', allPossibleFormats, true).isValid(); // true
moment('2001-01', allPossibleFormats, true).isValid(); // true

λ˜ν•œ allPossibleFormats 배열을 ν™•μž₯ν•˜κ³  λ‹€λ₯Έ λ‚ μ§œ/λ‚ μ§œ/μ‹œκ°„ ν˜•μ‹μ„ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ—¬μ „νžˆ λ¬Έμ œκ°€ μžˆλŠ” 경우 λ‹€μ‹œ μ—¬μ‹­μ‹œμ˜€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰