XEUtils 提供一套实用的函数,支持常用基础函数、支持任意格式的日期处理函数,cookie操作函数等...
7+ ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | 6.1+ ✔ |
使用 script 方式安装,XEUtils 会定义为全局变量
生产环境请使用 xe-utils.min.js,更小的压缩版本,可以带来更快的速度体验。
点击浏览已发布的所有 npm 包源码
<script src="https://cdn.jsdelivr.net/npm/xe-utils/dist/xe-utils.js"></script>
点击浏览已发布的所有 npm 包源码
<script src="https://unpkg.com/xe-utils/dist/xe-utils.js"></script>
// require 配置
require.config({
paths: {
// ...,
'xe-utils': './dist/xe-utils.min'
}
})
npm install xe-utils --save
const XEUtils = require('xe-utils')
import { dateToString, stringToDate } from 'xe-utils'
import XEUtils from 'xe-utils'
import XEUtils from 'xe-utils'
XEUtils.isNaN(undefined) // true
XEUtils.isNaN({}) // true
XEUtils.isNaN('num') // true
XEUtils.isNaN(true) // false
XEUtils.isNaN(null) // false
XEUtils.isNaN('') // false
import XEUtils from 'xe-utils'
XEUtils.isFinite(NaN) // false
XEUtils.isFinite(0) // true
XEUtils.isFinite(2e64) // true
import XEUtils from 'xe-utils'
XEUtils.isArray(null) // false
XEUtils.isArray({}) // false
XEUtils.isArray([1,2,3]) // true
import XEUtils from 'xe-utils'
XEUtils.isFloat(null) // false
XEUtils.isFloat(0) // false
XEUtils.isFloat(3) // false
XEUtils.isFloat(3.3) // true
import XEUtils from 'xe-utils'
XEUtils.isInteger(null) // false
XEUtils.isInteger(3.3) // false
XEUtils.isInteger(3) // true
XEUtils.isInteger(0) // true
import XEUtils from 'xe-utils'
XEUtils.isFunction({}) // false
XEUtils.isFunction(function(){}) // true
import XEUtils from 'xe-utils'
XEUtils.isBoolean('false') // false
XEUtils.isBoolean(true) // true
import XEUtils from 'xe-utils'
XEUtils.isString(1) // false
XEUtils.isString(true) // false
XEUtils.isString('') // true
XEUtils.isString('abc') // true
import XEUtils from 'xe-utils'
XEUtils.isNumber(null) // false
XEUtils.isNumber('1') // false
XEUtils.isNumber(1) // true
import XEUtils from 'xe-utils'
XEUtils.isRegExp(null) // false
XEUtils.isRegExp('a') // false
XEUtils.isRegExp(new RegExp('a')) // true
XEUtils.isRegExp(/\a/) // true
import XEUtils from 'xe-utils'
XEUtils.isObject(null) // true
XEUtils.isObject([]) // true
XEUtils.isObject({}) // true
XEUtils.isObject(123) // false
import XEUtils from 'xe-utils'
XEUtils.sPlainObject(null) // false
XEUtils.isPlainObject([]) // false
XEUtils.isPlainObject(123) // false
XEUtils.isPlainObject({}) // true
import XEUtils from 'xe-utils'
XEUtils.isDate('2017-12-20') // false
XEUtils.isDate({}) // false
XEUtils.isDate(1514096716800) // false
XEUtils.isDate(new Date()) // true
import XEUtils from 'xe-utils'
XEUtils.isError(null) // false
XEUtils.isError({}) // false
XEUtils.isError(new Error('error')) // true
import XEUtils from 'xe-utils'
XEUtils.isTypeError(null) // false
XEUtils.isTypeError({}) // false
XEUtils.isTypeError(new TypeError('error')) // true
import XEUtils from 'xe-utils'
XEUtils.isEmpty(0) // true
XEUtils.isEmpty('') // true
XEUtils.isEmpty(null) // true
XEUtils.isEmpty({}) // true
XEUtils.isEmpty([]]) // true
import XEUtils from 'xe-utils'
XEUtils.isNull(0) // false
XEUtils.isNull('') // false
XEUtils.isNull(null) // true
import XEUtils from 'xe-utils'
XEUtils.isSymbol('a') // false
XEUtils.isSymbol(Symbol('a')) // true
import { isArguments } from 'xe-utils'
isArguments([]) // false
isArguments(arguments) // true
import XEUtils from 'xe-utils'
XEUtils.isElement({}) // false
XEUtils.isElement(document.createElement('div')) // true
import XEUtils from 'xe-utils'
XEUtils.isDocument(document.createElement('div')) // false
XEUtils.isDocument(document) // true
import XEUtils from 'xe-utils'
XEUtils.isWindow(document) // false
XEUtils.isWindow(window) // true
import { isFormData } from 'xe-utils'
isFormData({}) // false
isFormData(new FormData()) // true
import XEUtils from 'xe-utils'
XEUtils.isLeapYear('2018-12-01') // false
XEUtils.isLeapYear('2020-12-01') // true
XEUtils.isLeapYear(new Date('2020/12/01')) // true
import XEUtils from 'xe-utils'
XEUtils.getType() // 'undefined'
XEUtils.getType(null) // 'null'
XEUtils.getType('') // 'string'
XEUtils.getType(1) // 'number'
XEUtils.getType([]) // 'array'
XEUtils.getType({}) // 'object'
XEUtils.getType(function(){}) // 'function'
import XEUtils from 'xe-utils'
XEUtils.uniqueId() // 1
XEUtils.uniqueId() // 2
import XEUtils from 'xe-utils'
XEUtils.getSize('123') // 3
XEUtils.getSize([1, 3]) // 2
XEUtils.getSize({a: 2, b: 5}) // 2
import XEUtils from 'xe-utils'
XEUtils.indexOf([11], 22) // -1
XEUtils.indexOf([11, 22], 22) // 1
import XEUtils from 'xe-utils'
XEUtils.lastIndexOf([11], 22) // -1
XEUtils.lastIndexOf([11, 22], 22) // 1
import XEUtils from 'xe-utils'
XEUtils.includes([11], 22) // false
XEUtils.includes([11, 22], 22) // true
import XEUtils, { objectAssign } from 'xe-utils'
const obj1 = {a: null}
XEUtils.assign(obj1, {a: 11}) // {a: 11}
// 浅拷贝
const obj2 = {a: null}
const obj3 = {bb: {b: 11}}
const obj4 = objectAssign(obj2, {a: 11}) // {a: 11, c: null, bb: {b: 11}}
obj3.bb = 22 // obj4 = {a: 11, c: null, bb: {b: 22}}
// 深拷贝
const obj2 = {a: null}
const obj3 = {bb: {b: 11}}
const obj4 = XEUtils.extend(true, obj3, {a: 11}) // {a: 11, c: null, bb: {b: 11}}
obj3.bb = 22 // obj4 = {a: 11, c: null, bb: {b: 11}}
import XEUtils from 'xe-utils'
XEUtils.stringToJson('{"a":1}') // {a: 1}
XEUtils.stringToJson('[11,22]') // [11, 22]
import XEUtils from 'xe-utils'
XEUtils.jsonToString({a: 1}) // '{"a":1}'
XEUtils.jsonToString([11, 22]) // '[11,22]'
import XEUtils, { objectKeys } from 'xe-utils'
XEUtils.keys({a: 11}) // ['a']
objectKeys([11, 22]) // [0, 1]
import XEUtils, { objectValues } from 'xe-utils'
XEUtils.values({a: 11}) // [11]
objectValues([11, 22]) // [11, 22]
import XEUtils from 'xe-utils'
XEUtils.objectEntries({a: 11}) // [['a', 11]]
XEUtils.objectEntries([11, 22]) // [[0, 11], [1, 22]]
import XEUtils, { arrayFirst } from 'xe-utils'
XEUtils.first({a: 11, b : 22}) // 11
arrayFirst([11, 22]) // 11
import XEUtils, { arrayLast } from 'xe-utils'
XEUtils.last({a: 11, b: 22}) // 22
arrayLast([11, 22]) // 22
import XEUtils, { objectEach, arrayEach } from 'xe-utils'
XEUtils.each({a: 11, b: 22}, (item, key) => {
// 通用迭代器
})
objectEach({a: 11, b: 22}, (item, key) => {
// 对象迭代器
})
arrayEach([11, 22, 33], (item, key) => {
// 数组迭代器
})
import XEUtils from 'xe-utils'
const result1 = XEUtils.groupBy([{type: 'a'}, {type: 'b'}]], 'type') // {a: [{a: 'a'}], b: [{b: 'b'}]}
const result2 = XEUtils.groupBy([{type: 'a'}, {type: 'b'}]], (item, key) => {
return item.type
}) // {a: [{a: 'a'}], b: [{b: 'b'}]}
import XEUtils from 'xe-utils'
const result = []
XEUtils.objectMap([{type: 'a'}, {type: 'b'}]], (item, key) => {
return item.type
}) // {a: {type: 'a', b: {type: 'b'}}}
import XEUtils from 'xe-utils'
const v1 = {a: 11, b: {b1: 22}
const v2 = XEUtils.clone({a: 11, b: 22})
if (v1.b === v2.b) {
// true
}
const v3 = XEUtils.clone(v1, true)
if (v1.b === v3.b) {
// false
}
import XEUtils, { arrayUniq } from 'xe-utils'
XEUtils.uniq([11, 22, 33, 33, 22, 55]) // [11, 22, 33, 55]
arrayUniq([11, 22, 33, 33, 22, 55]) // [11, 22, 33, 55]
import XEUtils, { arrayUnion } from 'xe-utils'
XEUtils.union([11, 22], [33, 22], [44, 11]) // [11, 22, 33, 44]
arrayUnion([11, 22], [33, 22], [44, 11]) // [11, 22, 33, 44]
import XEUtils, { arraySort } from 'xe-utils'
XEUtils.sort([{a: 9}, {a: 4}, {a: 5}], 'a') // [{a: 4}, {a: 5}, {a: 9}]
arraySort([{a: 9}, {a: 4}, {a: 5}], (v1, v2) => {
return v1.a > v2.a ? 1 : -1
}) // [{a: 4}, {a: 5}, {a: 9}]
import XEUtils, { arrayShuffle } from 'xe-utils'
XEUtils.shuffle([11, 22, 33, 44, 55]) // [22, 33, 55, 11, 44]
arrayShuffle([11, 22, 33, 44, 55]) // [22, 33, 55, 11, 44]
import XEUtils, { arraySample } from 'xe-utils'
XEUtils.sample([11, 22, 33, 44, 55], 3) // [22, 33, 55]
arraySample([11, 22, 33, 44, 55], 3) // [22, 33, 55]
import XEUtils, { arraySome } from 'xe-utils'
XEUtils.some([{a: 11}, {a: 22}]], (item, key) => {
return item.a === 55
}) // false
arraySome([{a: 11}, {a: 22}]], (item, key) => {
return item.a === 11
}) // true
import XEUtils, { arrayEvery } from 'xe-utils'
XEUtils.every([{a: 11}, {a: 22}]], (item, key) => {
return item.a === 11
}) // false
arrayEvery([{a: 11}, {a: 22}]], (item, key) => {
return item.a === 11 || item.a === 22
}) // true
import XEUtils, { arrayFilter } from 'xe-utils'
XEUtils.filter([{a: 11}, {a: 22}]], (item, key) => {
return item.a > 11
}) // [{a: 22}]
arrayFilter([{a: 11}, {a: 22}]], (item, key) => {
return item.a > 11
}) // [{a: 22}]
import XEUtils, { arrayFind } from 'xe-utils'
XEUtils.find([{a: 11}, {a: 22}]], (item, key) => {
return item.a === 55
}) // null
arrayFind([{a: 11}, {a: 22}]], (item, key) => {
return item.a === 22
}) // {a: 22}
import XEUtils, { arrayMap } from 'xe-utils'
XEUtils.map([{a: 11}, {a: 22}]], (item, key) => {
return item.a
}) // [11, 22]
arrayMap([{a: 11}, {a: 22}]], (item, key) => {
return item.a
}) // [11, 22]
import XEUtils, { timestamp } from 'xe-utils'
XEUtils.now() // 1514096716800
timestamp() // 1514096716800
import XEUtils from 'xe-utils'
XEUtils.stringToDate('2017-12-20') // Wed Dec 20 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.stringToDate('2017-12-20 10:10:30') // Wed Dec 20 2017 10:10:30 GMT+0800 (中国标准时间)
XEUtils.stringToDate('12/20/2017', 'MM/dd/yyyy') // Wed Dec 20 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.stringToDate('2017/12/20 10:10:30', 'yyyy/MM/dd HH:mm') // Wed Dec 20 2017 10:10:00 GMT+0800 (中国标准时间)
XEUtils.stringToDate('12/20/2017 10:10:30.100', 'MM/dd/yyyy HH:mm:ss.SSS') // Wed Dec 20 2017 10:10:30 GMT+0800 (中国标准时间)
import XEUtils from 'xe-utils'
XEUtils.dateToString(1513735830000) // '2017-12-20 10:10:30'
XEUtils.dateToString(new Date()) // '2017-12-20 10:10:30'
XEUtils.dateToString('2017-12-20 10:10:30', 'MM/dd/yyyy') // '12/20/2017'
XEUtils.dateToString(new Date(), 'yyyy-MM-dd') // '2017-12-20'
XEUtils.dateToString(new Date(), 'yyyy-MM-dd HH:mm:ss.S') // '2017-12-20 10:10:30.100'
XEUtils.dateToString(new Date(), 'yyyy年MM月dd日 HH时mm分ss秒S毫秒,星期E 第q季度') // '2017年12月20日 10时10分30秒100毫秒,星期三 第四季度'
import XEUtils from 'xe-utils'
XEUtils.getWhatMonth(new Date(), -1) // Mon Nov 20 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatMonth(1513735830000, -1) // Mon Nov 20 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatMonth('2017-12-20', -1) // Mon Nov 20 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatMonth('2017-12-20', 1) // Sat Jan 20 2018 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatMonth('2017-12-20', -1, 'first') // Wed Nov 01 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatMonth('2017-12-20', 1, 'last') // Wed Jan 31 2018 00:00:00 GMT+0800 (中国标准时间)
import XEUtils from 'xe-utils'
XEUtils.getWhatWeek(new Date(), -1) // Sun Dec 17 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatWeek(1513735830000, -1) // Sun Dec 17 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatWeek('2017-12-20', -1) // Sun Dec 17 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatWeek('2017-12-20', 1) // Sun Dec 31 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatWeek('2017-12-20', -1, 5) // Fri Dec 15 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatWeek('2017-12-20', 1, 0) // Sun Dec 31 2017 00:00:00 GMT+0800 (中国标准时间)
import XEUtils from 'xe-utils'
XEUtils.getWhatDay(new Date(), -1) // Tue Dec 19 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatDay(1513735830000, -1) // Tue Dec 19 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatDay('2017-12-20', -1) // Tue Dec 19 2017 00:00:00 GMT+0800 (中国标准时间)
XEUtils.getWhatDay('2017-12-20', 1) // Tue Dec 21 2017 00:00:00 GMT+0800 (中国标准时间)
import XEUtils from 'xe-utils'
XEUtils.getDaysOfMonth(new Date()) // 31
XEUtils.getDaysOfMonth(1513735830000) // 31
XEUtils.getDaysOfMonth('2017-12-20') // 31
XEUtils.getDaysOfMonth('2017-12-20', -1) // 30
XEUtils.getDaysOfMonth('2017-12-20', 1) // 31
import XEUtils from 'xe-utils'
XEUtils.getDateDiff('2017-11-20', '2017-12-21') // {MM: 1, dd: 1}
XEUtils.getDateDiff('2017-12-20', '2017-12-21') // {dd: 1}
XEUtils.getDateDiff('2017-12-20', '2017-12-21') // {dd: 1, ss: 30}
XEUtils.getDateDiff('2018-01-01', '2017-12-21') // {done: false}
const dateDiff = XEUtils.getDateDiff('2017-12-20 10:10:30', '2017-12-21 10:15:00')
const content = `${dateDiff.mm}分${dateDiff.ss}秒` // '4分30秒'
import XEUtils from 'xe-utils'
XEUtils.getRandom() // 0 ~ 9
XEUtils.getRandom(3, 6) // 3 ~ 6
XEUtils.getRandom(10, 100) // 10 ~ 100
import XEUtils, { arrayMin } from 'xe-utils'
XEUtils.min([22, 66, 77, 11]) // 11
arrayMin([{a: 11}, {a: 44}], 'a') // 11
arrayMin([{a: 11}, {a: 44}], (item) => {
return item.a
}) // {a: 11}
import XEUtils, { arrayMax } from 'xe-utils'
XEUtils.max([22, 66, 77, 11]) // 77
arrayMax([{a: 11}, {a: 44}], 'a') // 44
arrayMax([{a: 11}, {a: 44}], (item) => {
return item.a
}) // {a: 44}
import XEUtils from 'xe-utils'
XEUtils.commafy(1000000) // 千分位格式化 1,000,000
XEUtils.commafy(1000000, {fixed: 2}) // 格式化金额 1,000,000.00
XEUtils.commafy(1234123412341234, {spaceNumber: 4, separator: ' ', fixed: 0}) // 格式化银行卡 1234 1234 1234 1234
import XEUtils from 'xe-utils'
XEUtils.toNumber(123) // 123
XEUtils.toNumber('12.3'}) // 12.3
XEUtils.toNumber('abc') // 0
import XEUtils from 'xe-utils'
XEUtils.escape('<a>link</a>') // '<a>link</a>'
import XEUtils from 'xe-utils'
XEUtils.unescape('<a>link</a>') // '<a>link</a>'
import XEUtils from 'xe-utils'
XEUtils.browse()
// {-khtml: false, -moz: false, -ms: fasle, -o: false, -webkit: true, isMobile: false, isNode: false, isPC: true}
import XEUtils from 'xe-utils'
XEUtils.locat() // {hash: '', hostname: '', protocol: '', port: '', origin: '', ...}
import XEUtils from 'xe-utils'
XEUtils.parseUrl('http://xuliangzhan.com:8080/demo/') // {hostname: 'xuliangzhan.com', protocol: 'http:', port: '8080', ...}
import XEUtils from 'xe-utils'
XEUtils.getBaseURL() // http://xuliangzhan.com/demo/
import XEUtils from 'xe-utils'
XEUtils.cookie() // 获取所有
XEUtils.cookie('name') // 根据name获取
XEUtils.cookie('name', null, {expires: -1}) // 删除
XEUtils.cookie([{name: 'name', expires: -1}]) // 批量删除
XEUtils.cookie('name', 'value') // 添加/修改
XEUtils.cookie([{name: 'name', value: 'value'}]) // 批量添加/修改
XEUtils.cookie('name', 'value', {domain: 'xxx.com', path: '/', expires: 7, secure: true}) // 添加并设置domain/path/secure/expires 7天后过期
XEUtils.cookie([{name: 'name', value: 'value', domain: 'xxx.com', path: '/', expires: 7, secure: true}]) // 批量添加并设置domain/path/secure/expires 7天后过期
XEUtils.cookie.getJSON() // 获取所有
XEUtils.cookie.setItem('name', 'value') // 添加/修改
XEUtils.cookie.getItem('name') // 根据name获取
XEUtils.cookie.removeItem('name') // 删除
import XEUtils from 'xe-utils'
export function toDateStr (date) {
return XEUtils.dateToString(date, 'yyyy-MM-dd HH:mm')
}
import Vue from 'vue'
import XEUtils from 'xe-utils'
import customs from './customs'
XEUtils.mixin(customs)
// 调用自定义扩展函数
XEUtils.toDateStr() // 2018-01-01 10:00
Copyright (c) 2017-present, Xu Liangzhan