JavaScript 字符串工具库设计思路
一、核心定位
utils/string.js 是一个前端项目中的通用字符串处理工具模块,用于封装项目中反复出现的字符串操作逻辑,避免代码重复,提高可维护性。
二、建议包含的功能分类
- 大小写与命名风格转换
首字母大写/小写:用于显示格式化,比如人名、标题
驼峰与下划线互转:常用于 API 字段名与前端变量名之间的适配,或者处理 CSS 类名
中横线与驼峰互转:处理 HTML 属性或 CSS 变量命名
- 字符串截断与填充
按长度截断并加省略号:用于列表展示、卡片标题等场景,防止超长内容破坏布局
左右填充至指定长度:用于对齐文本,比如生成固定宽度的日志或表格
- 格式校验(返回布尔值)
判空:检查字符串是否为空、仅包含空白字符
邮箱格式:简单正则校验
手机号格式:中国大陆 11 位数字
URL 格式:判断是否以 http/https 开头
是否包含中文/英文/数字:用于输入框的内容限制
- 脱敏与隐私保护
手机号脱敏:保留前三位和后四位,中间星号代替
邮箱脱敏:保留前三字符,后面星号
身份证号脱敏:保留前后几位,中间星号
银行卡号脱敏:仅显示后四位
- 字符串清理与转换
去除所有空格:用于搜索关键词处理
去除首尾空格:表单输入值清理
HTML 标签转义/反转义:防止 XSS 攻击,或者显示富文本内容
Emoji 表情过滤或保留:处理用户昵称等场景
- 统计与查找
统计某个字符出现次数
统计字符串长度(区分中英文):中文字符按 2 个字节计算,用于数据库存储长度限制
提取所有数字/字母:用于验证码处理或过滤特殊字符
- 随机生成
生成固定长度的随机字符串:用于临时 ID、验证码、密码重置令牌
生成随机颜色值:用于头像占位图背景
- 版本号与语义化处理
版本号比较:判断两个版本号的大小关系,用于功能降级或升级提示
版本号提取主版本/次版本/补丁版本
- 路径与参数处理
拼接 URL 路径:自动处理斜杠重复或缺失的问题
解析 URL 查询参数为对象
对象序列化为 URL 查询字符串
三、设计原则建议
纯函数:所有函数不修改原始输入,只返回新值,方便测试和调试
单一职责:每个函数只做一件事,功能清晰
参数灵活:提供合理的默认值,让调用方可以按需定制行为
命名语义化:函数名要一看就懂,比如 truncate、maskPhone、isEmail
边界处理:对 null、undefined、空字符串等边缘情况做好兜底
四、使用场景举例
功能 典型使用场景
首字母大写 用户昵称显示、标题格式化
手机号脱敏 订单详情页、个人中心展示
字符串截断 新闻列表标题、商品卡片名称
邮箱校验 注册/登录表单
随机字符串 生成临时密码、邀请码
URL 参数解析 获取分享链接中的参数
HTML 转义 用户评论内容展示,防止 XSS
