UNPKG

front-standard-utils

Version:
294 lines (214 loc) 4.36 kB
# 前端通用工具库使用说明 ## 背景 为方便不同业务项目在使用常用JS工具函数时,需耗时编写工具库、且风格不统一问题,开发此工具库,本库是结合遇到的业务项目和经验封装一些通用方法,供小伙伴提效减荷,后续将持续跟进维护。 ## 安装 ```shell npm i front-standard-utils ``` ## 项目引入 ``` import { getUUID, getUrlParams, isEmail, isIDCard, isPhone, isUrl, removeDupArr, arrayEqual, ... } from 'front-standard-utils'; ``` ## 支持 API ### UUID --- **获取uuid** ``` @param prefix 可选,传入后作为uuid前缀 @returns uuid getUUID(prefix) ``` ### URL --- **获取单个url参数** ``` @param key 对应key值的参数 @param targetUrl 可选,不传获取当前地址的url,传入后获取targetUrl的参数 @returns uuid getUrlParam(key, targetUrl) ``` --- **获取url所有参数** ``` @param targetUrl 可选,不传获取当前地址的url,传入后获取targetUrl的参数 @returns uuid getUrlParams(key, targetUrl) ``` ### 正则 --- **验证是否为手机号** ``` @param str 手机号 @returns Boolean isPhoneNum(str) ``` --- **验证是否为邮箱** ``` @param str 邮箱 @returns Boolean isEmail(str) ``` --- **验证是否为身份证号** ``` @param str 身份证号 @returns Boolean isIdCard(str) ``` --- **验证是否为URL地址** ``` @param str url地址 @returns Boolean isUrl(str) ``` ### 数组 --- **对象数组去重** ``` @param arr 数组 @param key 去重项 @returns 返回去重后的新数据 removeDupArr(arr: any[], key: string) ``` --- **判断两个数组是否相等** ``` @param arr1 @param arr2 @returns Boolean arrayEqual(arr1: string[], arr2: string[]) ``` ### 对象 --- **判断obj是否为空** ``` @param {Object} obj @return {Boolean} isEmptyObject(obj: any) ``` --- **obj深克隆** ``` @param {Object} obj @return {Boolean} */ deepClone(obj: any) ``` ### 字符串 --- **千分位分隔数字字符串** ``` @param nums 需要格式化的数据 @returns @desc 千分位分隔数字字符串 如12345678 --> 12,345,678 stringSepByThousands(nums: string) ``` ### cookie ### --- **设置cookie** ``` @param name cookie key值 @param value cookie value值 setCookie(name: string, value: any) ``` --- **读取cookie** ``` @param name cookie key值 @returns getCookie(name: string) ``` --- **删除cookie** ``` @param name cookie key值 delCookie(name: string) ``` ### localStorage ### --- **设置localStorage** ``` @param storageName @param values @returns setLocalStorage(storageName: string, value: string) ``` --- **读取localStorage** ``` @param storageName @returns getLocalStorage(storageName: string) ``` --- **删除localStorage** ``` @param storageName removeLocalStorage(storageName: string) ``` ### 节流函数 ### --- **节流函数e** ``` @param fn 事件触发的操作 @param delay 可选,多少毫秒内连续触发事件不会执行,默认200毫秒 @returns {Function} throttle(fn: Function, delay: number = 200) ``` ### 防抖函数 ### --- **防抖函数** ``` @param fn 事件触发的操作 @param delay 可选,多少毫秒内连续触发事件延迟执行,默认200毫秒 @returns {Function} debounce(fn: Function, delay = 200) ``` ### 时间处理 ### --- **时间补0** ``` @param number {string|number} 待处理时间 @returns 返回处理之后的时间 @desc formatNumber(9) => 09 formatNumber(10) => 10 formatNumber(number: number | string) ``` --- **时间戳格式化时间** ``` @param timestamp {number} 待处理时间戳 @param beforeSeparate {string} 年月日分隔符 默认 - @param afterSeparate {string} 时分秒分隔符 默认 @returns 返回处理之后的时间 @desc formatDate(1641784747332) => 2022-01-10 11:19:07 formatDate(number: number) ``` --- **格式化时间 1641799837000 => 2分钟前** ``` @param timestamp {number} 待处理时间 @returns 返回处理之后的时间 @desc getFormatTime(1641784747332) => 2分钟前 getFormatTime(number: number) ``` --- **OSS图片转webp** ``` 检查阿里CDN是否支持.webp 格式图片,支持则转为wep格式 @@param {string} url OSS图片的url路径 @returns 新的url @desc 亲测14.4KB的png图片可转8.8KB getWebpImg(url: string) ```