DEV/javascript

Javascript 문자열이 날짜 형식인지 확인하기

석봉 2022. 3. 16. 15:40
/**
 * 입력 문자열이 날짜 형태인지를 반환
 * @param {string} date 
 * @param {string} pattern 날짜 Format yyyyMMddHHmmssSSS
 * @returns 
 */
 const isDate = (date, pattern) => {  
     if (date.length != pattern.length) {
        return false;
    }

    let patArr = pattern.split('');
    let datArr = date.split('');
    let yyyy = "";
    let mm = "";
    let dd = "";
    let hh = "";
    let mi = "";
    let ss = "";
    let sss = "";
    let idx = 0;
    for (let s of patArr) {
        if (s === "y") {
            yyyy += datArr[idx];
        } else if (s === "M") {
            mm += datArr[idx];
        } else if (s === "d") {
            dd += datArr[idx];
        } else if (s === "H") {
            hh += datArr[idx];
        } else if (s === "m") {
            mi += datArr[idx];
        } else if (s === "s") {
            ss += datArr[idx];
        } else if (s === "S") {
            sss += datArr[idx];
        } else {
            if (s !== datArr[idx]) {
                return false;
            }
        }
        idx++;
    }
    // 년과, 월이 없는 경우 윤달 여부로 인해 날자 형식 확인 불가
    if (yyyy === "") {
        return false;
    }
    if (mm === "") {
        return false;
    }
    if (hh === "") {
        hh = "01";
    }
    if (dd === "") {
        dd = "01";
    }
    if (mi === "") {
        mi = "01";
    }
    if (ss === "") {
        ss = "01";
    }
    if (sss === "") {
        sss = "01";
    }
    return !!Date.parse(yyyy + "-" + mm + "-" + dd + "T" + hh + ":" + mi + ":" + ss + "." + sss + "Z");
}

결과

isDate("19940905", "yyyyMMdd");		// true

 

 

혹시 필요하실까요...?

https://seokbong.tistory.com/70

 

Javascript Object 내부 날짜(Date) 오름차순/내림차순(sort, reverse) 하기

Javascript를 사용하면 다양한 Object를 다루게 된다. 오늘 Object 내부에 있는 날짜(Date)를 내림차순으로 정리해달라는 부탁을 받았다. // 데이터 const arr = { list1: [ {"date":"2022-02-10 11:20", "name":"..

seokbong.tistory.com