본문 바로가기
JS

[JS] 자주쓰는 함수 목록 Common Func

import moment from "moment";
import { numberWithCommas } from "./DataFormat";

export function closeWindow() {
  window.close();
}

export function isValid(data) {
  return !isNull(data);
}
export function isNull(data) {
  return data === undefined || data === null || data.length === 0
    ? true
    : false;
}

export function getElementById(id) {
  return document.getElementById(id);
}

export function getElementValueById(id) {
  return getElementById(id).value;
}

export function setElementValueById(id, value) {
  return (getElementById(id).value = value);
}

export function getElementTextById(id) {
  if (id) return getElementById(id).innerText;
}

export function setElementTextById(id, value) {
  if (id) if (value) return (getElementById(id).innerText = value);
}

export function setElementSelectOption(id, value, setter) {
  const element = getElementById(id);
  for (let i = 0; i < element.length; i++) {
    if (Number(element[i].value) === Number(value)) {
      element[i].selected = true;
      if (setter) setter(value);
      break;
    }
  }
}

export function setFocusById(id) {
  if (isValid(id) && id !== "") document.getElementById(id).focus();
}

export function equalNumbers(a, b) {
  return Number(a) === Number(b);
}

export function sum(a, b) {
  return Number(a) + Number(b);
}

/**
 * 문자열의 콤마를 제거한다.
 */
export function replaceComma(pStr) {
  const strCheck = /\,/g;
  pStr = pStr.replace(strCheck, "");
  return pStr;
}

/**
 *
 * @param {string|number} num
 * @returns return number type, if NaN return 0
 */
export function parseNumber(num) {
  if (isNaN(num)) return 0;
  else return Number(num);
}

export function parseNumberWithCommas(num) {
  num = parseNumber(num);
  return numberWithCommas(num);
}

function nowMonth() {
  const year = new Date().getFullYear();
  const month = new Date().getMonth();
  return moment().year(year).month(month);
}

function nowDate() {
  const date = new Date().getDate();
  return nowMonth().date(date);
}

export function formatMinute(year, month, date, hour, minute) {
  let formatDate = nowDate();
  if (year && month) {
    formatDate = moment().year(year).month(month);
  }
  if (date) {
    formatDate = formatDate.date(date);
  }
  if (hour) {
    formatDate = formatDate.hour(hour);
  }
  if (minute) {
    formatDate = formatDate.minute(minute);
  }
  formatDate = getMomentFormatDateTime(formatDate);
  return formatDate;
}
// js Date타입을 formatDate 함수 호출.
export function dateToFormatDate(time) {
  if (moment.isDate(time)) {
    let year = time.getFullYear();
    if (year.length > 4) year /= 10 * 10 * year.length - 4;
    const month = time.getMonth();
    const date = time.getDate();
    const hour = time.getHours();
    const minute = time.getMinutes();
    const seconds = time.getSeconds();
    const m = moment()
      .year(year)
      .month(month)
      .date(date)
      .hour(hour)
      .minute(minute)
      .seconds(seconds);
    const formatDate = getMomentFormatDateTime(m);
    console.log("formatDate :", formatDate);
    return formatDate;
  } else {
    return time;
  }
}

export function formatDate(year, month, date) {
  let formatDate = nowDate();
  if (year) {
    formatDate = moment().year(year);
  }
  if (month) {
    formatDate = moment().month(month);
  }
  if (date) {
    formatDate = formatDate.date(date);
  }
  formatDate = getMomentFormatDateTime(formatDate);
  return formatDate;
}

export function formatMonth(year, month) {
  let formatDate = nowMonth().date(1);
  if (year && month) {
    formatDate = moment().year(year).month(month).date(1);
  }
  formatDate = getMomentFormatDateTime(formatDate);
  return formatDate;
}

export function getMomentFormatDateTime(moment) {
  return moment.format("yyyy-MM-DD HH:mm:ss");
}

export function getMomentFormatDate(moment) {
  return moment.format("yyyy-MM-DD");
}

export function logger(name, value) {
  console.log(name, ":", value);
}

export function parseLocalTime(date) {
  return moment(date).utc().format("yyyy-MM-DD HH:mm:ss");
}

export const nextMonth = formatMonth(
  new Date().getFullYear(),
  new Date().getMonth() + 1
);

export function parseQueryString(search) {
  const queryString = search.substring(1); // ? 제거
  const queries = queryString.split("&").map((data) => data.split("=")); // a=~&b=~ 에서 &를 기준으로 데이터 키,밸류 자르고 =를 기준으로 다시 key value 자르기.
  const datas = queries.map((query) => {
    const result = {};
    result[query[0]] = query[1];
    return result;
  });
  return datas;
}

'JS' 카테고리의 다른 글

apidocs @apiBody에 대해  (0) 2021.08.10