輸入日期驗證
此系統工具函式對於日期正確性的檢驗,以這裡的check()函式為準,亦即要求輸入的日期是真實存在的民國年月日期。
◎ boolean check(input)
- 適用於:YYYMMDD / YYYMM
- 若輸入格式不合法,或輸入的日期不存在,如非閏年的2/29,皆回傳False。
◎ int checkButIgnore(dateStr, ignorePatterns…)
- 適用於:YYYMMDD
- 驗證原則同check(),當輸入合法時,回傳為0;否則為-1;
- 但當輸入資料匹配於任一ignored pattern時,回傳為符合第幾個Pattern (based on 1)。因為有時允許使用者輸入特殊日期,以觸發替代流程,所以需要知道輸入資料符合哪一個Pattern。
assertEquals(-1, YYYMMDDUtils.checkButIgnore("0940229")); assertEquals(-1, YYYMMDDUtils.checkButIgnore("0940229", "0000000")); assertEquals(0, YYYMMDDUtils.checkButIgnore("0980803", "0000000", "")); assertEquals(1, YYYMMDDUtils.checkButIgnore("0000000", "0000000", "")); assertEquals(2, YYYMMDDUtils.checkButIgnore("", "0000000", "")); assertEquals(2, YYYMMDDUtils.checkButIgnore("", "0000000", " *")); assertEquals(2, YYYMMDDUtils.checkButIgnore(" ", "0000000", " +"));