• 整理了一个前端utils工具方法库


    lk-tools-lib

    前端开发工具方法集合库,整合了项目中常用的工具方法

    Installation

    # with npm
    npm install -S lk-tools-lib
    # with yarn
    yarn add -S lk-tools-lib
    
    • 1
    • 2
    • 3
    • 4

    declaration

    所有方法都经过测试

    其中带序号的功能标题:
    红颜色代表可以点击跳转到单元测试文件,可以更清晰地看到函数使用方法和传参形式
    灰色代表没有写单元测试,但也在项目上经过测试通过,可以放心使用。

    Documentation

    图片

    1、批量压缩图片
    /**
     * @param {files} 文件数组对象
     * @param {ratio} 压缩参数 一般在0~1之间  
     * @returns {files} -> promise对象 使用.then可以获取压缩后的文件数组对象
     */
    import { zipImage } from 'lk-tools-lib'
    zipImage(files, ratio)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    2、file转base64
    /**
     * @param {file} 文件对象
     * @returns {string} ->  promise对象 使用.then可以获取base64格式
     */
    import { filleToBase64 } from 'lk-tools-lib'
    filleToBase64(file)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    3、base64转file
    /**
     * @param {dataurl}  文件base64格式
     * @param {filename} 文件名
     * @returns {file} -> promise对象 使用.then可以获取 将base64转为file的文件对象
     */
    import { base64ToFile } from 'lk-tools-lib'
    base64ToFile(dataurl, filename)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    4、压缩base64格式的图片
    /**
     * @param {base64} 文件base64格式
     * @param {ratio} 图片压缩比例 0~1之间 一般0.6附近是合理值
     * @returns {string} -> 压缩后的base64格式 
     */
    import { dealImage } from 'lk-tools-lib'
    dealImage(base64, ratio)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    工具

    5、遍历对象 接收回调函数
    /**
     * @param {obj} 需要循环遍历的对象
     * @param {fn} 回调函数
     * @returns {boolen}  
     */
    import { forEach } from 'lk-tools-lib'
    forEach(obj,fn)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    6、merge,多对象合并
    /**
     * @param {obj} 需要合并的对象
     * @returns {obj}  例如: merge({a:1},{b:2}) return {a:1,b:2}
     */
    import { merge } from 'lk-tools-lib'
    merge(/*obj1,obj2,....*/)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    7、数组对象去重
    /**
     * @param {arr} 需要去重的数组对象
     * @param {key} 根据哪个键来去重
     * @returns {boolen}  
     */
    import { derepeatArray } from 'lk-tools-lib'
    derepeatArray(arr,key)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    8、防抖
    /**
     * @param {fn} 函数方法
     * @param {wait} 防抖时间
     * @param {immediate} 是否立即执行fn
     * @returns {Function}  
     */
    import { debounce } from 'lk-tools-lib'
    debounce(fn,wait,immediate)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    9、节流
    /**
     * @param {fn} 函数方法
     * @param {wait} 节流时间
     * @returns {Function}  
     */
    import { throttle } from 'lk-tools-lib'
    throttle(fn,wait)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    10、localstorage存储数据
    /**
     * @param {name} 存储的建
     * @param {content} 存储的值
     */
    import { setStore } from 'lk-tools-lib'
    setStore(name,content)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    11、手机号脱敏 手机号码为隐藏中间4位数
    /**
     * @param {value} 手机号
     * @return { string} 如:formatPhone(13716073435) return 137****3435
     */
    import { formatPhone } from 'lk-tools-lib'
    formatPhone(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    12、获取uuid
    /**
     * @return { string}
     */
    import { uuid } from 'lk-tools-lib'
    uuid()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    13、获取范围内的随机数
    /**
     * @param {start} 
     * @param {end} 
     * @return { number} 例如 getRandomNumber(1,10) return 1
     */
    import { getRandomNumber } from 'lk-tools-lib'
    getRandomNumber(start,end)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    14、全屏
    /**
     * 开启全屏
     */
    import { launchFullscreen } from 'lk-tools-lib'
    launchFullscreen()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    15、取消全屏
    /**
     * 关闭全屏
     */
    import { exitFullscreen } from 'lk-tools-lib'
    exitFullscreen()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    16、滚动到顶部
    /**
     * 滚动到页面顶部
     */
    import { scrollToTop } from 'lk-tools-lib'
    scrollToTop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    17、滚顶到指定元素
    /**
     * 滚动到指定元素位置 
     * 例如 smoothScroll('#id')
     */
    import { smoothScroll } from 'lk-tools-lib'
    smoothScroll(domId)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    18、劫持粘贴板
    /**
     * @params {value} 需要传到粘贴板里的值
     */
    import { copyTextToClipboard } from 'lk-tools-lib'
    copyTextToClipboard(domId)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    19、获取字节长度
    /**
     * 获取字节长度 
     * @params {value}
     */
    import { getByteLength } from 'lk-tools-lib'
    getByteLength(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    20、将json转url
    /**
     * @params {data} object对象
     */
    import { parseObject2Url } from 'lk-tools-lib'
    parseObject2Url(data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    21、设置cookie
    /**
     *  @params {cname} 键
     *  @params {cvalue} 键值
     *  @params {exdays} 有效的天数
     */
    import { setCookie } from 'lk-tools-lib'
    setCookie(cname, cvalue, exdays)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    22、得到cookie的值
    /**
     * @params {cname} 键
     */
    import { getCookie } from 'lk-tools-lib'
    getCookie(data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    23、删除指定cookie的值
    /**
     * @params {cname} 键
     */
    import { removeCookie } from 'lk-tools-lib'
    removeCookie(cname)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    24、删除全部的cookie值
    import { clearCookie } from 'lk-tools-lib'
    clearCookie()
    
    • 1
    • 2

    媒体文件

    25、获取视频的时长,封面和宽高
    /**
     * @param {fileObj}
     * @return {Promise}
     */
    import { getVideosDuration } from 'lk-tools-lib'
    getVideosDuration(file)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    26、将base64下载为文件
    /**
     * @param {dataUrl} base64格式
     * @param {filename} 文件名
     * @return file
     */
    import { downloadBase64File } from 'lk-tools-lib'
    downloadBase64File(dataUrl, filename)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    27、根据id导出表格数据为excel
    /**
     * @param {id} table的表格id
     * @return file
     */
    import { exportExcel } from 'lk-tools-lib'
    exportExcel(id)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    日期

    28、获取某年是多少天
    /**
     *  获取某年有多少天
     *  @param {time} 这一年里任意的时间戳
     *  @returns {number} 例如:getYearOfDays(1661421621720) return 365
     */
    import { getYearOfDays } from 'lk-tools-lib'
    getYearOfDays(1661421621720)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    29、时间戳格式化
    /**
     * 时间格式化。
     * @param {time} 
     * @param {string} option
     * @returns {string} 
     * 如:formatTime(new Date(1661421621720)) -> 2022-08-25 18:00:21
     * formatTime(new Date(1661421621720),"{y}-{m}-{d}") -> 2022-08-25
     * formatTime(new Date(1661421621720),"{y}-{m}-{d} 星期{a}") -> 2022-08-25 星期四
     * 
     */
    import { parseTime } from 'lk-tools-lib'
    parseTime(time,cFormat)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    30、获取某年的某月共多少天
    /**
     * @param {timeStamp} timeStamp 当月的时间戳
     * @returns {Number} 
     */
    import { getMonthDays } from 'lk-tools-lib'
    getMonthDays()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    31、获取某一天(年月日)是星期几
    /**
     *  @param {timeStamp} 时间戳 
     *  @returns {string}
     */
    import { getDayWeekday } from 'lk-tools-lib'
    getDayWeekday(timeStamp)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    32、获取某一天所在一周的日期集合
    /**
     * @param {Object} date日期
     * @returns {Array} 一周的日期
     */
    import { getWeekDatesForDate } from 'lk-tools-lib'
    getWeekDatesForDate(date)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    33、获取某一天所在周的日期
    /**
     *  @param {timeStamp} 时间戳 
     *  @returns {string}
     */
    import { getWeekDatesForYMD } from 'lk-tools-lib'
    getWeekDatesForYMD(timeStamp)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    34、获取 开始日期 之后 第n周 的 日期
    /**
     * @param {start} 开始日期 
     * @param {diff} n 
     * @returns {string}
     */
    import { getDatesAfterWeeks } from 'lk-tools-lib'
    getDatesAfterWeeks(start, diff)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    35、判断某日期是否是今天
    /**
     * @param {date} Date对象 
     * @returns {string}
     */
    import { isToday } from 'lk-tools-lib'
    isToday(date)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    36、获取 某年某月某日 是在 那一月 的第几周
    /**
     * @param {time} 时间戳
     * @returns {string}
     */
    import { getMonthWeek } from 'lk-tools-lib'
    getMonthWeek(time)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    37、获取今天是星期几
    /**
     * @returns {string}
     */
    import { getCurrentWeekday } from 'lk-tools-lib'
    getCurrentWeekday()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    38、获取今天的 年月日
    /**
     * @returns {object} 如:{year: 2022, month: 8, day:22}
     */
    import { getCurrentYearMonthDay } from 'lk-tools-lib'
    getCurrentYearMonthDay()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    39、指定日期是星期几
    /**
     * @param {string} 例如'2022-12-12'
     * @returns {string}
     */
    import { getWeekValue } from 'lk-tools-lib'
    getWeekValue(dateString)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    40、获取两个日期相差的天数
    /**
     * @param {startDate} 如'2022-08-26'
     * @param {enDate} 如'2022-08-28
     * @returns {number} getDaysBetween(2022-08-26', 2022-08-28') -> 2
     */
    import { getDaysBetween } from 'lk-tools-lib'
    getDaysBetween(startDate, enDate)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    41、秒数转时分秒
    /**
     * @param {timeValue} 秒数 如: 3500
     * @returns {string} 例如: formatHMS(3500) -> '58分钟20秒'
     */
    import { formatHMS } from 'lk-tools-lib'
    formatHMS(timeValue)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    42、生日对应多少月
    /**
     * @param {timeStamp} 出生时间戳
     * @returns {number} 例如: calAgeOfMonth(1577836800000) -> 31
     */
    import { calAgeOfMonth } from 'lk-tools-lib'
    calAgeOfMonth(timeStamp)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    43、根据id获取年龄
    /**
     * @param {identityCard} 身份证号
     * @returns {number} 例如: getAge(372901199806025978) -> 24
     */
    import { getAge } from 'lk-tools-lib'
    getAge(identityCard)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    44、根据身份证获取生日
    /**
     * @param {identityCard} 身份证号
     * @returns {number} 例如: getBirthByIdCard(372901199806025978) -> '1998-06-02'
     */
    import { getBirthByIdCard } from 'lk-tools-lib'
    getBirthByIdCard(id)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    45、获取两出生日期相差多少
    /**
     * @param {startTime} 时间戳
     * @param {endTime} 时间戳
     * @returns {number} 
     */
    import { getAgeDistance } from 'lk-tools-lib'
    getAgeDistance(startTime, endTime)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    46、指定日期 以后 几天 的年月日
    /**
     * @param {timestamp} 时间戳
     * @param {addDay} 天数
     * @returns {string} 
     */
    import { getCurDateAdd } from 'lk-tools-lib'
    getCurDateAdd(timestamp, addDay)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    校验

    47、判断是否为null或者为undefined或者空格字符串
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isNullOrEmpty } from 'lk-tools-lib'
    isNullOrEmpty(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    48、是否手机号
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isMobile } from 'lk-tools-lib'
    isMobile(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    48、是否email
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isEmail } from 'lk-tools-lib'
    isEmail(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    49、是否合法邮政编码
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { zipCode } from 'lk-tools-lib'
    zipCode(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    50、是否合法身份证号
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isIdCard } from 'lk-tools-lib'
    isIdCard(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    51、是否合法银行卡号
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isBankCard } from 'lk-tools-lib'
    isBankCard(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    52、是否全数字
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isNum } from 'lk-tools-lib'
    isNum(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    53、是否为合法url
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { checkUrl } from 'lk-tools-lib'
    checkUrl(url)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    54、处理金额,补全小数点后两位
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { formatMoney } from 'lk-tools-lib'
    formatMoney(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    55、判断是否为数组
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isArray } from 'lk-tools-lib'
    isArray(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    56、判断是否为对象
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isObject } from 'lk-tools-lib'
    isObject(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    57、判断是否为日期对象
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isDate } from 'lk-tools-lib'
    isDate(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    58、判断是否为非空数组
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isNotEmptyArray } from 'lk-tools-lib'
    isNotEmptyArray(value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    59、判断是否为合法的图片来源
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isSrc } from 'lk-tools-lib'
    isSrc(url)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    60、判断是否是PC环境
    /**
     * @param {value} 
     * @returns {boolen}  
     */
    import { isPC } from 'lk-tools-lib'
    isPC()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    61、判断是否安卓环境
    /**
     * @returns {boolen}  
     */
    import { isAndroid } from 'lk-tools-lib'
    isAndroid
    
    • 1
    • 2
    • 3
    • 4
    • 5
    62、判断是否iphone异形屏
    /**
     * @returns {boolen}  
     */
    import { isIosX } from 'lk-tools-lib'
    isIosX
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    自动化测试、压力测试、持续集成
    融云移动办公协同平台,助力政企数智化转型升级
    Spring 事务源码分析
    Linux文件压缩和解压命令【gzip、gunzip、zip、unzip、tar】【详细总结】
    C语言之使用memcpy函数实现小数组数据不覆盖地复制到大数组
    docker容器启动后修改或添加端口
    leetcode897. 递增顺序搜索树(java)
    java基于Android停车场地图导航停车APP-小程序
    【SpringMVC】JSON数据传输与异常处理的使用
    CN_MAC介质访问控制子层@CSMA协议
  • 原文地址:https://blog.csdn.net/ajrdbrjckt/article/details/126727375