npm install umob
Then, assuming you're using a module-compatible system (like webpack, Rollup etc):
import { debounce } from 'umob'
CommonJS:
const { debounce } = require('umob')
<script src="index.umd.js"></script>
<script>
Umob.debounce()
</script>
A global, Umob, will be created, containing all exports of the module version.
方法、描述 | 参数 | 返回 |
---|---|---|
dateFormat(date, [format='yyyy-MM-dd']) : 将日期格式化为 'yyyy-MM-dd', 'yyyy-MM-dd hh:mm:ss' 等格式,分隔符可替换 |
date (*):待格式化日期,可被格式化的日期详见 toDate 方法 [format='yyyy-MM-dd'] (string):目标日期的格式,如:'yyyy-MM-dd hh:mm:ss S q w W T' 'y+' :年 'M+' :月 'd+' :日 'h+' :时 'm+' :分 's+' :秒 'S' :毫秒 'q+' :季度 'w' :周 'W' :大写周 'T' :T |
(string):格式化后的日期,若无法格式化将返回空字符串 |
dateGap(startDate, endDate, [opt=]) : 获取两个日期之间的日期(年月) |
startDate (*):开始日期,支持年-月-日格式,详见 toDate 方法;支持年-月格式,详见 toMonth 方法 endDate (*):结束日期,支持年-月-日格式,详见 toDate 方法;支持年-月格式,详见 toMonth 方法 [opt=] (Object):选项对象 [opt.includeHead=true] (boolean):是否包含起始日期 [opt.includeTail=true] (boolean):是否包含结尾日期 [opt.format='yyyy-MM-dd'] (string):日期格式化 |
(Array<string>):日期数组,若无法获取,将返回 [] |
calculateDate(date, num, [fmt=]) : 计算date日期num天(月)之后(前)的日期 |
date (number | string | Date):基准日期,若计算月份,格式见 toMonth 方法,若计算年月日日期,格式见 toDate 方法 num (number):天数(月数) [fmt=] (string):返回的日期格式,默认为yyyy-MM-dd |
(string):num天(月)之后的日期,若无法计算,将返回空字符串 |
dateInterval(date1, date2, [opt=]) : 获取两个日期作差的毫秒数 |
date1 (number | string | Date):起始时间,格式见 toDate 方法 date2 (number | string | Date):同上 [opt=] (object):选项对象 [opt.format='ms'] (string):返回时间的格式d、h、m、s、ms(天、时、分、秒、毫秒) |
(number):两个日期作差的毫秒数,若输入无效日期将返回NaN |
toDate(params) : 将参数转化为日期格式 |
params (*):待转化的数据。number 类型将会作为时间戳被转化为日期string 类型支持形如 yyyy(\D)?MM(\2)dd( hh:mm:ss)? 、yyyy(\D)?MM 的格式,如:'2020-07-12'、'20200712'、'2020.07.12'、'2020/07/12'、'2020.07.12 12:23:44'、'202307'、'2023-01'Date 类型将直接返回 |
(Date):转化后的日期,若无法转化或为其他类型将返回 Invalid Date |
toMonth(params) : 将参数转化为yyyy-MM格式的年月 |
params (*):待转化的数据。number 类型将会被转化为字符串string 类型支持形如 yyyy(\D)?MM 的格式,如:'2020-07'、'202007'、'2020.07'、'2020/07' |
(string):转化后的年-月,若无法转化或为其他类型将返回空字符串 |
debounce(fn, wait, [immediate=true]) : 创建一个 debounced(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 fn 方法 |
fn (Function):要防抖动的函数 wait (number):需要延迟的毫秒数 [immediate=true] (boolean):首次调用是否立即执行一次 fn |
(Function):返回新的 debounced(防抖动)函数 |
throttle(fn, wait, [immediate=true]) : 创建一个节流函数,在 wait 秒内最多执行 fn 一次的函数 |
fn (Function):要节流的函数 wait (number):需要节流的毫秒数 [immediate=true] (boolean):首次调用是否立即执行一次 fn |
(Function):返回新的 throttle 函数 |
getUrlParams([variable=]) : 获取url的参数 |
[variable=] (String):要获取的参数名称;也可为空,为空将获取url中的所有参数并返回对象 |
(Object | String):返回指定的url参数值或url所有的参数对象 |
sortCallback([opt=]) : 返回一个方法,该方法为sort函数的入参 |
[opt=] (Object):选项对象 [opt.type='desc'] (string):desc 升序,asc 降序 [opt.key] (string | number | Symbol):当排序数组为 Array<Object> 时必填,取值为排序字段的键名 |
(Function):返回sort排序方法 |
deepClone(obj) : 深度克隆 |
obj (*):克隆对象 |
(*):返回结果与obj相同,不包括原型链上的属性 |
getCookie(name) : 获取cookie |
name (string):cookie键名 |
(string):cookie值 |
delCookie(name, [domain=location.hostname]) : 删除cookie |
name (string):cookie键名 [domain=location.hostname] (string):cookie所在的域 |
- |
setCookie(name, value, daysToExpire = 30, [path='/'], [domain=location.hostname]) : 设置cookie |
name (string):cookie键名 value (string):cookie值 [daysToExpire=30] (number):cookie过期天数 [path='/'] (string):cookie路径 [domain=location.hostname] (string):cookie所在的域 |
- |
bigNumTransform(num, [opt=]) : 将大数字转化为万/亿的形式 |
num (number | string):待转化的数 [opt=] (Object):选项对象 [opt.float=2] (number):精度 [opt.merge=true] (boolean):返回结果是否与单位合并,若为 false 将返回数组 [opt.unit=['万', '亿']] (Array<string>):单位配置 |
(Array<string> | string):返回转化后的字符串或字符串数组,若无法转化,将返回 'NaN' 或 ['NaN', ''] |
extractStr(str, startSymbol, endSymbol, [opt=]) : 提取字符串两个特征字符之间的内容 |
str (string):待提取的字符串 startSymbol (string):起始特征字符,若特征字符串为以下字符 []\^$.|?*+(){} 之一,在传入时需添加 \\ 双反斜杠进行转义。传入空字符串,匹配结果将从第一个字符匹配至 endSymbol endSymbol (string):终止特征字符。传入空字符串,结果将从 startSymbol 匹配至字符串末尾 [opt=] (Object):选项对象 [opt.greedyMode=false] (boolean):是否开启贪婪模式,若为 true 返回结果中将包含最大匹配长度的字符串 [opt.global=false] (boolean):是否开启全局匹配,若为 true 将返回所有两个特征字符串之间的内容数组 |
(Array<string> | string):两个特征字符之间的内容或内容数组,opt.global=true 返回结果为数组,opt.global=false 返回结果为字符串 |
extractNumbers(str, [allowNegative=false]) : 提取字符串中的数字 |
str (string):待提取的字符串 [allowNegative=false] (boolean):是否将 - 作为负号识别 |
(Array<number>):数字组成的数组 |
isObject(variable) : 判断是否为对象 |
variable (any):待判断的参数 |
(boolean):true | false |
isVaildDate(variable) : 判断是否为有效的日期对象 |
variable (any):待判断的参数 |
(boolean):true | false |
Method & Description | Parameters | Returns |
---|---|---|
dateFormat(date, [format='yyyy-MM-dd']) : format date to 'yyyy-MM-dd', 'yyyy-MM-dd hh:mm:ss' etc. - can be replaced with other characters.If the date can't be formatted, an empty string will be returned. |
date (*):date to be formatted.Refer to the toDate method for details format (string):format regular like 'yyyy-MM-dd hh:mm:ss S q w W T' 'y+' :year 'M+' :month 'd+' :day 'h+' :hour 'm+' :minute 's+' :second 'S' :milliseconds 'q+' :quarter 'w' :week 'W' :week of CN 'T' :T |
(string):formatted date |
Test single file:
npm run test:single
# node -v = v16.20.0
Configure the name of the test file in the .env.json
file.This file will be created after executing npm run test:single
once.
Test all files:
npm run test
npm run build