CommonUtils

通用工具

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/398010/781197/CommonUtils.js

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         CommonUtils
// @name:zh-CN   CommonUtils
// @name:en      CommonUtils
// @description  通用工具。
// @description:zh-CN  通用工具。
// @description:en  Common Utils.
// @namespace    https://greasyfork.org/zh-CN/users/331591
// @version      1.0.1
// @author       Hale Shaw
// @homepage     https://greasyfork.org/zh-CN/scripts/398010
// @supportURL   https://greasyfork.org/zh-CN/scripts/398010/feedback
// @icon         https://greasyfork.org/assets/blacklogo16-bc64b9f7afdc9be4cbfa58bdd5fc2e5c098ad4bca3ad513a27b15602083fd5bc.png
// @match        https://greasyfork.org/*
// @license      AGPL-3.0-or-later
// @compatible	 Chrome
// @run-at       document-idle
// @grant        none
// ==/UserScript==

/**
 * check whether the element is valid by id.
 * @param {String} id element id.
 */
function isValidById(id) {
  if (document.getElementById(id)) {
    return true;
  } else {
    return false;
  }
}

/**
 * check whether the element is valid by class name.
 * @param {String} className element class name.
 */
function isValidByClassName(className) {
  if (document.getElementsByClassName(className) && document.getElementsByClassName(className)[0] !== undefined) {
    return true;
  } else {
    return false;
  }
}

/**
 * 将Date转化为指定格式的String.
 * 年(y)可以用 1-4 个占位符,
 * 月(M)、日(d)、小时(H)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
 * 毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
 * 例子:
 * dateFormat("yyyy-MM-dd hh:mm:ss.S", new Date()) ==> 2006-07-02 08:09:04.423
 * dateFormat("yyyy-M-d h:m:s.S", new Date())      ==> 2006-7-2 8:9:4.182
 * @param {String} fmt fotmat 格式字符串.
 * @param {Date} date Date object.
 */
function dateFormat (fmt, date) {
  var ret;
  var opt = {
    "y+": date.getFullYear().toString(),
    "M+": (date.getMonth() + 1).toString(),
    "d+": date.getDate().toString(),
    "H+": date.getHours().toString(),
    "m+": date.getMinutes().toString(),
    "s+": date.getSeconds().toString(),
    "q+": (Math.floor((date.getMonth() + 3) / 3)).toString(),
    "S": date.getMilliseconds().toString()
    // 有其他格式化字符需求可以继续添加,必须转化成字符串
  };
  for (var k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt);
    if (ret) {
      fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
    }
  }
  return fmt;
}