npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

lby-utils

v1.0.3

Published

lby utils

Readme

lby-utils

安装

使用 npm 安装

npm install lby-utils

使用 yarn 安装

yarn add lby-utils

引用包

在 Node.js 中使用

const { arrEqual } = require('lby-utils');

// 示例
const result = arrEqual([1, 2, 3], [1, 2, 3]);
console.log(result); // true

或者

const lbyUtils = require('lby-utils');

// 示例
const result = lbyUtils.arrEqual([1, 2, 3], [1, 2, 3]);
console.log(result); // true

在 ES Module 中使用

import { arrEqual } from 'lby-utils';

// 示例
const result = arrEqual([1, 2, 3], [1, 2, 3]);
console.log(result); // true

在浏览器中使用

可以通过 CDN 引入:

<script src="https://unpkg.com/lby-utils"></script>
<script>
  const result = lbyUtils.arrEqual([1, 2, 3], [1, 2, 3]);
  console.log(result); // true
</script>

目录

  • 数组操作
    • arrEqual - 比较两个数组是否相等
    • arrIncludes - 判断数组中是否包含某个值
    • arrMerge - 合并多个对象
    • arrRemove - 删除数组中的某个元素
    • arrUnique - 数组去重
    • foreachTree - 遍历树形数据
  • 日期操作
    • convertDate - 几天后的日期
    • formatDate - 日期格式化
    • formatJust - 返回相对时间或指定格式的时间字符串
    • isToday - 验证一个日期是不是今天
    • isYesterday - 验证一个日期是不是昨天
    • toTimestamp - 时间转时间戳
  • 存储操作
    • cache - 设置、获取、删除、清空缓存localStorage
    • cookie - 设置、获取、删除 cookie
    • session - 设置、获取、删除、清空 sessionStorage
  • 工具函数
    • base64ToFile - 将 base64 字符串转换为 File 对象
    • copyText - 复制文本到剪贴板
    • createDownload - 创建下载链接
    • debounce - 防抖函数
    • deepClone - 深拷贝
    • encryptRsa - 使用 RSA 公钥加密数据
    • fileToBase64 - 将图片文件转换为 base64 字符串
    • fileUrlToBase64 - 将图片链接转换为 base64 字符串
    • getEleId - 生成一个唯一的id
    • getUrlParams - 获取url参数
    • getUuid - 生成uuid
    • subText - 截取字符串
    • throttle - 节流函数
    • zipImage - 压缩图片
  • 验证函数
    • isIPv4 - 验证是否为IPv4地址
    • isNoWord - 判断是否为非英文字符串
    • isPostcode - 判断是否为邮政编码
    • isLowercase - 判断是否为小写字母字符串
    • isCapital - 判断是否为大写字母字符串
    • isEnglish - 判断是否为英文字符串
    • isNumber - 判断是否为数字字符串
    • isDate - 判断是否为日期字符串
    • isCarNumber - 判断是否为车牌号字符串
    • isChineseName - 判断是否为中文姓名字符串
    • isAccountNumber - 判断是否为账号字符串
    • isIDCard - 判断是否为身份证号字符串
    • isPassword - 判断是否为密码字符串
    • isEmail - 判断是否为邮箱字符串
    • isPhone - 判断是否为手机号字符串

使用文档请在 https://www.npmjs.com/package/lby-utils 查看。

数组操作

/**
 * @param {any[]} arr1
 * @param {any[]} arr2
 * @returns {boolean}
 * @description 比较两个数组是否相等
 * @example arrEqual([1, 'hello', {a: 1}, [2, 3]], [1, 'hello', {a: 1}, [2, 3]]) => true
 */
export function arrEqual(arr1: any[], arr2: any[]): boolean {
  // implementation
}
/**
 * @param arr - 数组
 * @param value - 值
 * @returns {boolean}
 * @description 判断数组中是否包含某个值
 * @example  arrIncludes([1, 2, 3, 4, 5], 3) => true
 */
export function arrIncludes<T>(arr: T[], value: T): boolean {
  // implementation
}
/**
 * @returns {Object}
 * @description 合并多个对象
 * @example  arrMerge({a: 1}, {b: 2}) => {a: 1, b: 2}
 */
export function arrMerge() {
  // implementation
}
/**
 * @param {Array} arr
 * @param {any} ele
 * @returns {Array}
 * @description 删除数组中的某个元素
 * @example  arrRemove([1, 2, 3, 4, 5], 3) => [1, 2, 4, 5]
 */
export function arrRemove(arr: any[], ele: any): any[] {
  // implementation
}
/**
 * @param {Array} arr
 * @returns {Array}
 * @description 数组去重
 * @example  arrUnique([1, 2, 2, 3, 4, 4, 5]) => [1, 2, 3, 4, 5]
 */
export function arrUnique(arr: any[]): any[] {
  // implementation
}
/**
 * @param data 数据源
 * @param childrenName 子节点字段名
 * @param callback 回调函数
 * @description 遍历树形数据
 * @example foreachTree(data, 'children', (item) => { console.log(item) })
 */
export function foreachTree(data: any[], childrenName = 'children', callback: (item: any) => void) {
  // implementation
}

日期操作

/**
 * @param day: number
 * @param date: string
 * @returns string
 * @description: 几天后的日期
 * @example: convertDate(1, '2021-01-01') => '2021-01-02'
 */
export function convertDate(day: number, date: string): string {
  // implementation
}
/**
 * @param date - Date object or date string
 * @param format - Date format string (default: 'YYYY-MM-DD HH:mm:ss')
 * @returns - Formatted date string
 * @description - 日期格式化
 * @example - formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss') => '2021-09-01 12:00:00' or formatDate('2021-09-01', 'YYYY-MM-DD') => '2021-09-01'
 */
export function formatDate(date: Date | string, format: string = 'YYYY-MM-DD HH:mm:ss'): string {
  // implementation
}
/**
 * @param time 时间戳或时间字符串
 * @param option 格式化选项
 * @returns 格式化后的时间字符串
 * @description 根据时间戳或时间字符串,返回相对时间或指定格式的时间字符串
 * @example formatJust(1620000000000) => '1天前'
 */
export function formatJust(time: number | string, option?: string): string {
  // implementation
}
/**
 * @param val
 * @returns
 * @description 验证一个日期是不是今天
 * @example isToday(new Date()) => true
 */
export function isToday(val: string | number | Date): boolean {
  // implementation
}
/**
 * @param {string | number | Date} val
 * @returns {boolean}
 * @description 验证一个日期是不是昨天
 * @example isYesterday(new Date()) => true
 */
export function isYesterday(val: string | number | Date): boolean {
  // implementation
}
/**
 * @param {string} time
 * @returns {number}
 * @description 时间转时间戳
 * @example toTimestamp('2021-01-01 00:00:00') => 1609430400000
 */
export function toTimestamp(time: string): number {
  // implementation
}

存储操作

/**
 * @param key 
 * @param value 
 * @description 设置缓存
 * @example setCache('name', '张三')
 */
export function setCache(key: string, value: any) {
  // implementation
}

/**
 * @param key 
 * @description 获取缓存
 * @example getCache('name')
 */
export function getCache(key: string) {
  // implementation
}

/**
 * @param key 
 * @description 删除缓存
 * @example removeCache('name')
 */
export function removeCache(key: string) {
  // implementation
}

/**
 * @description 清空缓存
 * @example clearCache()
 */
export function clearCache() {
  // implementation
}
/**
 * @param name 
 * @param value 
 * @param days 
 * @description 设置 cookie
 * @example setCookie('name', '张三', 7)
 */
export function setCookie(name: string, value: string, days: number) {
  // implementation
}

/**
 * @param name 
 * @description 获取 cookie
 * @example getCookie('name')
 */
export function getCookie(name: string) {
  // implementation
}

/**
 * @param name 
 * @description 删除 cookie
 * @example removeCookie('name')
 */
export function removeCookie(name: string) {
  // implementation
}
/**
 * @param key 键
 * @param value 值
 * @description 设置 sessionStorage
 * @example setSession('name', '张三')
 */
export function setSession(key: string, value: any) {
  // implementation
}

/**
 * @param key 键
 * @description  获取 sessionStorage
 * @example getSession('name')
 */
export function getSession(key: string) {
  // implementation
}

/**
 * @param key 键
 * @description 删除 sessionStorage
 * @example removeSession('name')
 */
export function removeSession(key: string) {
  // implementation
}

/**
 * @description 清空 sessionStorage
 * @example clearSession()
 */
export function clearSession() {
  // implementation
}

工具函数

/**
 * @param dataUrl base64字符串
 * @param filename 文件名[默认为'file']
 * @returns File
 * @description 将 base64 字符串转换为 File 对象
 * @example base64ToFile('data:image/png;base64,').then(file => console.log(file))
 */
export function base64ToFile(dataUrl: string, filename: string = 'file'): File {
  // implementation
}
/**
 * @param text 要复制的文本
 * @description 复制文本到剪贴板
 * @example copyText('Hello, world!')
 */
export function copyText(text: string): void {
  // implementation
}
/**
 * @param {string} url 下载链接
 * @param {string} filename 下载文件名
 * @return {void}
 * @description 创建下载链接
 * @example createDownloadLink('https://www.baidu.com')
 */
export const createDownloadLink = (url: string, filename?: string) => {
  // implementation
}
/**
 * @param {Function} func 需要防抖的函数
 * @param {number} wait 防抖时间
 * @return {Function}
 * @description 防抖函数
 * @example debounce(() => console.log('hello'), 1000)
 */
export function debounce<T extends (...args: any[]) => void>(func: T, wait: number): T {
  // implementation
}
/**
 * @param value 需要克隆的值
 * @param weakMap 弱引用对象
 * @return {T} 返回克隆后的值
 * @description 深拷贝
 * @example deepClone({ a: 1, b: { c: 2 } })
 */
export function deepClone<T>(value: T, weakMap = new WeakMap()): T {
  // implementation
}
/**
 * 使用 RSA 公钥加密数据
 * @param data - 需要加密的字符串
 * @param publicKey - RSA 公钥
 * @returns 加密后的字符串,若加密失败则返回 null
 */
export function encryptWithRSA(data: string, publicKey: string): string | null {
  // implementation
}

/**
 * 使用 RSA 私钥解密数据
 * @param encryptedData - 加密后的字符串
 * @param privateKey - RSA 私钥
 * @returns 解密后的字符串,若解密失败则返回 null
 */
export function decryptWithRSA(encryptedData: string, privateKey: string): string | null {
  // implementation
}
/**
 * @param file - File object
 * @param callback - 回调函数,返回 base64 字符串
 * @returns void
 * @description 将图片文件转换为 base64 字符串
 * @example fileToBase64(file, (base64) => { console.log(base64) })
 */
export function fileToBase64(file: File, callback: (base64: string) => void): void {
  // implementation
}
/**
 * @param url - 图片链接
 * @returns/**
 * @description 将图片链接转换为 base64 字符串
 * @example fileUrlToBase64('https://example.com/image.jpg').then(base64 => console.log(base64))
 */
export async function fileUrlToBase64(url: string): Promise<string> {
  // implementation
}

getEleId

/**
 * @param {string} prefix - id前缀
 * @returns {string} - 返回一个唯一的id
 * @description 生成一个唯一的id
 * @example getEleId('id-') => 'id-1f1-1f1'
 */
export function getEleId(prefix: string = 'id-'): string {
  // implementation
}
/**
 * @param name
 * @description 获取url参数
 * @example getUrlParams('id')
 */
export function getUrlParams(name: string): string | null {
  // implementation
}
/**
 * @param {number} len
 * @param {number} radix
 * @returns {string}
 * @description 生成uuid
 * @example getUuid(8, 16) => "098b3e2c"
 */
export function getUuid(len: number = 32, radix: number = 16): string {
  // implementation
}
/**
 * @param str: string
 * @param length: number
 * @returns string
 * @description: 截取字符串
 * @example: subText('hello world', 5) => 'hello...'
 */
export function subText(str: string, length: number): string {
  // implementation
}
/**
 * @param {type} FN_PARAMS 
 * @return {type}
 * @description 节流函数
 * @example throttle(() => console.log('hello'), 1000)
 */
export function throttle<T extends (...args: any[]) => void>(func: T, wait: number): T {
  // implementation
}
/**
 * @param file 图片文件
 * @param maxSizeMB 最大大小(MB)
 * @param callback 回调函数,参数为压缩后的图片数据 URL
 * @description 压缩图片
 * @example zipImage(file, 1, (zipDataUrl) => { console.log(zipDataUrl) })
 */
export function zipImage(file: File, maxSizeMB: number, callback: (zipDataUrl: string) => void): void {
  // implementation
}

验证函数

/**
 * @param value 
 * @returns 
 * @description 验证是否为IPv4地址
 * @example isIPv4('192.168.1.1') => true
 */
export function isIPv4(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的非英文字符串
 * @returns 
 * @description 判断是否为非英文字符串
 * @example isNoWord('123') => true
 */
export function isNoWord(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的邮政编码字符串
 * @returns 
 * @description 判断是否为邮政编码
 * @example isPostcode('123456') => true
 */
export function isPostcode(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的小写字母字符串
 * @returns 
 * @description 判断是否为小写字母字符串
 * @example isLowercase('abc') => true
 */
export function isLowercase(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的大写字母字符串
 * @returns 
 * @description 判断是否为大写字母字符串
 * @example isCapital('ABC') => true
 */
export function isCapital(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的英文字符串
 * @returns 
 * @description 判断是否为英文字符串
 * @example isEnglish('Hello') => true
 */
export function isEnglish(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的数字字符串
 * @returns 
 * @description 判断是否为数字字符串
 * @example isNumber('123') => true
 */
export function isNumber(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的日期字符串
 * @returns 
 * @description 判断是否为日期字符串
 * @example isDate('2021-01-01') => true
 */
export function isDate(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的车牌号字符串
 * @returns 
 * @description 判断是否为车牌号字符串
 * @example isCarNumber('粤B12345') => true
 */
export function isCarNumber(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的中文姓名字符串
 * @returns 
 * @description 判断是否为中文姓名字符串
 * @example isChineseName('张三') => true
 */
export function isChineseName(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的账号字符串
 * @returns 
 * @description 判断是否为账号字符串
 * @example isAccountNumber('user123') => true
 */
export function isAccountNumber(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的身份证号字符串
 * @returns 
 * @description 判断是否为身份证号字符串
 * @example isIDCard('123456789012345678') => true
 */
export function isIDCard(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的密码字符串
 * @returns 
 * @description 判断是否为密码字符串
 * @example isPassword('P@ssw0rd') => true
 */
export function isPassword(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的邮箱字符串
 * @returns 
 * @description 判断是否为邮箱字符串
 * @example isEmail('[email protected]') => true
 */
export function isEmail(value: string): boolean {
  // implementation
}
/**
 * @param value - 待验证的手机号字符串
 * @returns 
 * @description 判断是否为手机号字符串
 * @example isPhone('13800138000') => true
 */
export function isPhone(value: string): boolean {
  // implementation
}