1.0.6 • Published 1 year ago

@meitian/utils v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

前端工具库 | Frontend Utils Library

NPM Version License: MIT PRs Welcome

📑 目录

✨ 功能特点

  • 📅 日期处理:格式化日期、日期计算、相对时间等
  • 📝 文本处理:文本截断、命名格式转换、敏感信息掩码等
  • 🔢 数字处理:格式化数字、货币转换、精确计算等
  • 📊 数据处理:深拷贝、对象扁平化、数组处理等

📦 安装

# npm
npm install @meitian/utils

# yarn
yarn add @meitian/utils

# pnpm
pnpm add @meitian/utils

🔨 使用示例

📅 日期处理

import { formatDate, getRelativeTimeDescription } from '@meitian/utils';

// 格式化日期
console.log(formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss')); // 2023-04-01 14:30:45

// 获取相对时间描述
console.log(getRelativeTimeDescription(new Date(Date.now() - 3600000))); // 1小时前

📝 文本处理

import { truncate, maskString, toCamelCase } from '@meitian/utils';

// 截断文本
console.log(truncate('这是一段很长的文本内容', 6)); // 这是一段很...

// 掩码处理敏感信息
console.log(maskString('13812345678')); // 138****5678

// 命名格式转换
console.log(toCamelCase('user_name')); // userName

🔢 数字处理

import { formatNumber, formatCurrency, numberToChinese, preciseCalc } from '@meitian/utils';

// 格式化数字
console.log(formatNumber(12345.6789)); // 12,345.68

// 格式化货币
console.log(formatCurrency(12345.6789)); // ¥12,345.68

// 数字转中文大写金额
console.log(numberToChinese(12345.67)); // 壹万贰仟叁佰肆拾伍元陆角柒分

// 精确计算
console.log(preciseCalc.add(0.1, 0.2)); // 0.3

📊 数据处理

import { deepClone, getPropertyByPath, sortArrayByKey } from '@meitian/utils';

// 深拷贝对象
const obj = { user: { name: '张三', age: 30 } };
const cloned = deepClone(obj);

// 获取嵌套属性
console.log(getPropertyByPath(obj, 'user.name')); // 张三

// 按属性排序数组
const users = [{ name: '张三', age: 30 }, { name: '李四', age: 25 }];
console.log(sortArrayByKey(users, 'age')); // [{ name: '李四', age: 25 }, { name: '张三', age: 30 }]

📚 API 文档

📅 日期工具 (date)

函数名描述
formatDate(date, format)将日期格式化为指定格式的字符串
startOfDay(date)获取日期的开始时间(00:00:00)
endOfDay(date)获取日期的结束时间(23:59:59.999)
differenceInDays(dateLeft, dateRight)计算两个日期之间的天数差异
addTime(date, amount, unit)向日期添加指定时间
isDateInRange(date, startDate, endDate)检查日期是否在指定范围内
isWeekday(date)检查日期是否是工作日(周一至周五)
getRelativeTimeDescription(date, baseDate)获取相对时间描述

📝 文本工具 (text)

函数名描述
truncate(text, maxLength, ellipsis)截断文本到指定长度
toCamelCase(text)转换字符串为驼峰命名
toPascalCase(text)转换字符串为帕斯卡命名
toSnakeCase(text)转换字符串为下划线命名
toKebabCase(text)转换字符串为中划线命名
capitalize(text)首字母大写
strLength(text, countType)计算字符串长度(支持中文等双字节字符)
stripHtml(html)移除字符串中的HTML标签
isEmpty(text)判断字符串是否为空
maskString(text, startVisible, endVisible, mask)敏感信息掩码处理

🔢 数字工具 (number)

函数名描述
formatNumber(num, options)格式化数字为千分位分隔的字符串
unFormatNumber(num)将千分位分隔的字符串转换为数字
formatCurrency(amount, options)格式化金额为货币字符串
numberToChinese(num)将数字转换为中文大写金额
abbreviateNumber(num, digits)将数字转换为指定数量级的简写
randomNumber(min, max, isInteger)生成指定范围内的随机数
clamp(num, min, max)将数字限制在指定范围内

preciseCalc: 精确的浮点数运算对象

方法名描述
add(a, b)精确加法
subtract(a, b)精确减法
multiply(a, b)精确乘法
divide(a, b)精确除法
round(a, decimals)精确四舍五入

📊 数据工具 (data)

函数名描述
deepClone(obj)深拷贝对象
deepEqual(obj1, obj2)深度比较两个对象是否相等
flattenObject(obj, prefix)对象扁平化
getPropertyByPath(obj, path, defaultValue)获取对象的嵌套属性值
setPropertyByPath(obj, path, value)设置对象的嵌套属性值
removeFromArray(array, predicate)从数组中移除指定元素
sortArrayByKey(array, key, order)根据指定属性对对象数组进行排序
groupArrayByKey(array, key)根据指定属性对对象数组进行分组
uniqueArray(array, key)数组去重
range(start, end, step)生成指定范围内的数字数组
safeParseJSON(jsonString, defaultValue)安全地解析JSON字符串
getStorageItem(key, defaultValue)安全地获取缓存数据
setStorageItem(key, value)安全地存储数据到本地缓存

📄 许可证

MIT © M先生

1.0.6

1 year ago

1.0.5

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago