New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

xe-utils

Package Overview
Dependencies
Maintainers
1
Versions
305
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

xe-utils

XEUtils 一个轻量级的函数库,提供一套实用丰富函数

  • 1.4.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4.7K
decreased by-63.39%
Maintainers
1
Weekly downloads
 
Created
Source

XEUtils 轻量级的函数库,提供一套实用丰富函数

XEUtils 一个不依赖于任何框架、开源的函数库,支持常用基础函数、支持任意格式的日期处理函数,cookie操作函数等...

兼容性

支持 IE8+、Edge、Chrome、Firefox、Opera、Safari等...

直接引用 script 全局安装,XEUtils 会定义为全局变量

<script src="./dist/xe-utils.min.js" type="text/javascript"></script>

// 全局调用
XEUtils.dateToString(new Date(), 'yyyy-MM-dd')

AMD 安装, 以 require.js 为例

// require 配置
require.config({
  paths: {
    // ...,
    'xe-utils': './dist/xe-utils.min'
  }
})

// ./app.js 调用
define(['xe-utils'], function (XEUtils) {
  XEUtils.dateToString(new Date(), 'yyyy-MM-dd')
})

ES6 Module 安装方式

npm install xe-utils --save

部分导入

import { dateToString, stringToDate } from 'xe-utils'

const dateStr = dateToString(new Date(), 'yyyy-MM-dd')
const date = stringToDate('11/20/2017 10:10:30', 'MM/dd/yyyy HH:mm:ss')

导入所有

import XEUtils from 'xe-utils'

const dateStr = XEUtils.dateToString(new Date(), 'yyyy-MM-dd')
const date = XEUtils.stringToDate('11/20/2017 10:10:30', 'MM/dd/yyyy HH:mm:ss')

混合函数

文件 ./customs.js
export function custom1 () {
  console.log('自定义函数')
} 
示例
import Vue from 'vue'
import XEUtils from 'xe-utils'
import customs from './customs'

XEUtils.mixin(customs)

// 调用自定义扩展函数
XEUtils.custom1()

'xe-utils' API

isNaN (val) 判断是否非数值
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
isFinite (val) 判断是否为有限数值
import XEUtils from 'xe-utils'

XEUtils.isFinite(NaN) // false
XEUtils.isFinite(0) // true
XEUtils.isFinite(2e64) // true
isArray (val) 判断是否数组
import XEUtils from 'xe-utils'

XEUtils.isArray(null) // false
XEUtils.isArray({}) // false
XEUtils.isArray([1,2,3]) // true
isFloat (val) 判断是否小数
import XEUtils from 'xe-utils'

XEUtils.isFloat(null) // false
XEUtils.isFloat(0) // false
XEUtils.isFloat(3) // false
XEUtils.isFloat(3.3) // true
isInteger (val) 判断是否整数
import XEUtils from 'xe-utils'

XEUtils.isInteger(null) // false
XEUtils.isInteger(3.3) // false
XEUtils.isInteger(3) // true
XEUtils.isInteger(0) // true
isFunction (val) 判断是否方法
import XEUtils from 'xe-utils'

XEUtils.isFunction({}) // false
XEUtils.isFunction(function(){}) // true
isBoolean (val) 判断是否Boolean对象
import XEUtils from 'xe-utils'

XEUtils.isBoolean('false') // false
XEUtils.isBoolean(true) // true
isString (val) 判断是否String对象
import XEUtils from 'xe-utils'

XEUtils.isString(1) // false
XEUtils.isString(true) // false
XEUtils.isString('') // true
XEUtils.isString('abc') // true
isNumber (val) 判断是否Number对象
import XEUtils from 'xe-utils'

XEUtils.isNumber(null) // false
XEUtils.isNumber('1') // false
XEUtils.isNumber(1) // true
isRegExp (val) 判断是否RegExp对象
import XEUtils from 'xe-utils'

XEUtils.isRegExp(null) // false
XEUtils.isRegExp('a') // false
XEUtils.isRegExp(new RegExp('a')) // true
XEUtils.isRegExp(/\a/) // true
isObject (val) 判断是否Object对象
import XEUtils from 'xe-utils'

XEUtils.isObject(null) // true
XEUtils.isObject([]) // true
XEUtils.isObject({}) // true
XEUtils.isObject(123) // false
isPlainObject (val) 判断是否是一个对象
import XEUtils from 'xe-utils'

XEUtils.sPlainObject(null) // false
XEUtils.isPlainObject([]) // false
XEUtils.isPlainObject(123) // false
XEUtils.isPlainObject({}) // true
isDate (val) 判断是否Date对象
import XEUtils from 'xe-utils'

XEUtils.isDate('2017-12-20') // false
XEUtils.isDate({}) // false
XEUtils.isDate(1514096716800) // false
XEUtils.isDate(new Date()) // true
isError (val) 判断是否Error对象
import XEUtils from 'xe-utils'

XEUtils.isError(null) // false
XEUtils.isError({}) // false
XEUtils.isError(new Error('error')) // true
isTypeError (val) 判断是否TypeError对象
import XEUtils from 'xe-utils'

XEUtils.isTypeError(null) // false
XEUtils.isTypeError({}) // false
XEUtils.isTypeError(new TypeError('error')) // true
isEmpty (val) 判断是否为空,包括空对象、空数值、空字符串
import XEUtils from 'xe-utils'

XEUtils.isEmpty(0) // true
XEUtils.isEmpty('') // true
XEUtils.isEmpty(null) // true
XEUtils.isEmpty({}) // true
XEUtils.isEmpty([]]) // true
isNull (val) 判断是否为Null
import XEUtils from 'xe-utils'

XEUtils.isNull(0) // false
XEUtils.isNull('') // false
XEUtils.isNull(null) // true
isSymbol (val) 判断是否Symbol对象
import XEUtils from 'xe-utils'

XEUtils.isSymbol('a') // false
XEUtils.isSymbol(Symbol('a')) // true
isArguments (val) 判断是否Arguments对象
import { isArguments } from 'xe-utils'

isArguments([]) // false
isArguments(arguments) // true
isElement (val) 判断是否Element对象
import XEUtils from 'xe-utils'

XEUtils.isElement({}) // false
XEUtils.isElement(document.createElement('div')) // true
isDocument (val) 判断是否Document对象
import XEUtils from 'xe-utils'

XEUtils.isDocument(document.createElement('div')) // false
XEUtils.isDocument(document) // true
isWindow (val) 判断是否Window对象
import XEUtils from 'xe-utils'

XEUtils.isWindow(document) // false
XEUtils.isWindow(window) // true
isFormData (val) 判断是否FormData对象
import { isFormData } from 'xe-utils'

isFormData({}) // false
isFormData(new FormData()) // true
isLeapYear (date) 判断是否闰年
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
getType (obj) 获取对象类型
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'
uniqueId ( ) 获取一个全局唯一标识
import XEUtils from 'xe-utils'

XEUtils.uniqueId() // 1
XEUtils.uniqueId() // 2
getSize ( obj ) 返回对象的长度
import XEUtils from 'xe-utils'

XEUtils.getSize('123') // 3
XEUtils.getSize([1, 3]) // 2
XEUtils.getSize({a: 2, b: 5}) // 2
indexOf (obj, val) 返回对象第一个索引值
import XEUtils from 'xe-utils'

XEUtils.indexOf([11], 22) // -1
XEUtils.indexOf([11, 22], 22) // 1
lastIndexOf (obj, val) 从最后开始的索引值,返回对象第一个索引值
import XEUtils from 'xe-utils'

XEUtils.lastIndexOf([11], 22) // -1
XEUtils.lastIndexOf([11, 22], 22) // 1
includes (obj, val) 判断对象是否包含该值,成功返回true否则false
import XEUtils from 'xe-utils'

XEUtils.includes([11], 22) // false
XEUtils.includes([11, 22], 22) // true
objectAssign (target, ...) 浅拷贝一个或者多个对象到目标对象中
import XEUtils from 'xe-utils'

const obj1 = {a: null}
XEUtils.objectAssign(obj1, {a: 11}) // {a: 11}
XEUtils.extend(obj1, {a: 11}) // {a: 11}
const obj2 = {c: null}
XEUtils.objectAssign(obj2, {a: 11}, {b: 22}) // {a: 11, b: 22, c: null}
XEUtils.extend(obj2, {a: 11}, {b: 22}) // {a: 11, b: 22, c: null}
stringToJson (str) 字符串转JSON
import XEUtils from 'xe-utils'

XEUtils.stringToJson('{"a":1}') // {a: 1}
XEUtils.stringToJson('[11,22]') // [11, 22]
jsonToString (obj) JSON转字符串
import XEUtils from 'xe-utils'

XEUtils.jsonToString({a: 1}) // '{"a":1}'
XEUtils.jsonToString([11, 22]) // '[11,22]'
objectKeys (obj) 获取对象所有属性
import XEUtils from 'xe-utils'

XEUtils.objectKeys({a: 11}) // ['a']
XEUtils.objectKeys([11, 22]) // [0, 1]
objectValues (obj) 获取对象所有值
import XEUtils from 'xe-utils'

XEUtils.objectValues({a: 11}) // [11]
XEUtils.objectValues([11, 22]) // [11, 22]
objectEntries (obj) 获取对象所有属性、值
import XEUtils from 'xe-utils'

XEUtils.objectEntries({a: 11}) // [['a', 11]]
XEUtils.objectEntries([11, 22]) // [[0, 11], [1, 22]]
arrayFirst (obj) 获取对象第一个值
import XEUtils from 'xe-utils'

XEUtils.arrayFirst({a: 11, b : 22}) // 11
XEUtils.arrayFirst([11, 22]) // 11
arrayLast (obj) 获取对象最后一个值
import XEUtils from 'xe-utils'

XEUtils.arrayLast({a: 11, b: 22}) // 22
XEUtils.arrayLast([11, 22]) // 22
each ( obj, iteratee, context ) 迭代器
import XEUtils from 'xe-utils'

const result = []
XEUtils.each({a: 11, b: 22}, (item, key) => {
  if (key === 'b') {
    result.push(item)
  }
}) // [22]
groupBy ( obj, iteratee, context ) 集合分组,默认使用键值分组,如果有iteratee则使用结果进行分组
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'}]}
objectMap ( obj, iteratee, context ) 指定方法后的返回值组成的新对象
import XEUtils from 'xe-utils'

const result = []
XEUtils.objectMap([{type: 'a'}, {type: 'b'}]], (item, key) => {
  return item.type
}) // {a: {type: 'a', b: {type: 'b'}}}
clone (obj, deep) 浅拷贝/深拷贝
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
}
arrayUniq ( array ) 数组去重
import XEUtils from 'xe-utils'

XEUtils.arrayUniq([11, 22, 33, 33, 22, 55]) // [11, 22, 33, 55]
arrayUnion ( ...array ) 将多个数的值返回唯一的并集数组
import XEUtils from 'xe-utils'

XEUtils.arrayUnion([11, 22], [33, 22], [44, 11]) // [11, 22, 33, 44]
arraySort ( arr, iteratee, context ) 数组按属性值升序
import XEUtils from 'xe-utils'

XEUtils.arraySort([{a: 9}, {a: 4}, {a: 5}], 'a') // [{a: 4}, {a: 5}, {a: 9}]
XEUtils.arraySort([{a: 9}, {a: 4}, {a: 5}], (v1, v2) => {
  return v1.a > v2.a ? 1 : -1
}) // [{a: 4}, {a: 5}, {a: 9}]

arrayShuffle ( array ) 将一个数组随机打乱,返回一个新的数组
import XEUtils from 'xe-utils'

XEUtils.arrayShuffle([11, 22, 33, 44, 55]) // [22, 33, 55, 11, 44]
arraySample ( array, number ) 从一个数组中随机返回几个元素
import XEUtils from 'xe-utils'

XEUtils.arraySample([11, 22, 33, 44, 55], 3) // [22, 33, 55]
arraySome ( obj, iteratee, context ) 对象中的值中的每一项运行给定函数,如果函数对任一项返回true,则返回true,否则返回false
import XEUtils from 'xe-utils'

XEUtils.arraySome([{a: 11}, {a: 22}]], (item, key) => {
  return item.a === 55
}) // false
XEUtils.arraySome([{a: 11}, {a: 22}]], (item, key) => {
  return item.a === 11
}) // true
arrayEvery ( obj, iteratee, context ) 对象中的值中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true,否则返回false
import XEUtils from 'xe-utils'

XEUtils.arrayEvery([{a: 11}, {a: 22}]], (item, key) => {
  return item.a === 11
}) // false
XEUtils.arrayEvery([{a: 11}, {a: 22}]], (item, key) => {
  return item.a === 11 || item.a === 22
}) // true
arrayFilter ( obj, iteratee, context ) 根据回调过滤数据
import XEUtils from 'xe-utils'

XEUtils.arrayFilter([{a: 11}, {a: 22}]], (item, key) => {
  return item.a > 11
}) // [{a: 22}]
arrayFind ( obj, iteratee, context ) 查找匹配第一条数据
import XEUtils from 'xe-utils'

XEUtils.arrayFind([{a: 11}, {a: 22}]], (item, key) => {
  return item.a === 55
}) // null
XEUtils.arrayFind([{a: 11}, {a: 22}]], (item, key) => {
  return item.a === 22
}) // {a: 22}
arrayMap ( obj, iteratee, context ) 指定方法后的返回值组成的新数组
import XEUtils from 'xe-utils'

XEUtils.arrayMap([{a: 11}, {a: 22}]], (item, key) => {
  return item.a
}) // [11, 22]
dateNow ( ) 返回时间戳
import XEUtils from 'xe-utils'

XEUtils.dateNow() // 1514096716800
stringToDate ( str, format ) 任意格式字符串转为日期(yyyy年份、MM月份、dd天、HH小时、mm分钟、ss秒、SSS毫秒)
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('12/20/2017 10:10:30.100', 'MM/dd/yyyy 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 (中国标准时间)
dateToString ( date, format ) 日期化为任意格式字符串(yyyy年份、MM月份、dd天、HH小时、mm分钟、ss秒、S毫秒、E星期几、q季度)
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毫秒,星期三 第四季度'
getWhatMonth ( date, mode, month ) 返回前几个月或后几个月的日期,可以指定月初或月末,默认当前
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 (中国标准时间)
getWhatWeek ( date, mode, week ) 返回前几周或后几周的日期,可以指定星期几,默认当前
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 (中国标准时间)
getWhatDay ( date, day ) 返回前几天或后几天的日期
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 (中国标准时间)
getDaysOfMonth ( date, month ) 返回当前日期月份的天数,可以指定前几个月或后几个月,默认当前
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
getDateDiff ( startDate, endDate, rules ) 返回两个日期之间差距
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}
const dateDiff = XEUtils.getDateDiff('2017-12-20 10:10:30', '2017-12-21 10:15:00')
const content = `${dateDiff.mm}分${dateDiff.ss}秒` // '4分30秒'
getRandom ( min, max ) 获取一个指定范围内随机数
import XEUtils from 'xe-utils'

XEUtils.getRandom() // 0 ~ 9
XEUtils.getRandom(3, 6) // 3 ~ 6
XEUtils.getRandom(10, 100) // 10 ~ 100
arrayMin ( arr, iteratee ) 获取最小值
import XEUtils from 'xe-utils'

XEUtils.arrayMin([22, 66, 77, 11]) // 11
XEUtils.arrayMin([{a: 11}, {a: 44}], 'a') // 11
XEUtils.arrayMin([{a: 11}, {a: 44}], (item) => {
  return item.a
}) // {a: 11}
arrayMax ( arr, iteratee ) 获取最大值
import XEUtils from 'xe-utils'

XEUtils.arrayMax([22, 66, 77, 11]) // 77
XEUtils.arrayMax([{a: 11}, {a: 44}], 'a') // 44
XEUtils.arrayMax([{a: 11}, {a: 44}], (item) => {
  return item.a
}) // {a: 44}
escape ( str ) 转义HTML字符串,替换&, <, >, ", ', `字符
import XEUtils from 'xe-utils'

XEUtils.escape('<a>link</a>') // '&lt;a&gt;link&lt;/a&gt;'
unescape ( str ) 反转escape
import XEUtils from 'xe-utils'

XEUtils.unescape('&lt;a&gt;link&lt;/a&gt;') // '<a>link</a>'
browse ( ) 获取浏览器内核
import XEUtils from 'xe-utils'

XEUtils.browse() // {-khtml: false, -moz: false, -ms: fasle, -o: false, -webkit: true}
locat ( ) 获取地址栏信息
import XEUtils from 'xe-utils'

XEUtils.locat() // {hash: '', host: '', hostname: '', href: '', protocol: '', port: '', origin: '', query: {...}, params: {...}, ...}
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') // 删除

License

Copyright (c) 2017-present, Xu Liangzhan

Keywords

FAQs

Package last updated on 04 Feb 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc