news 2026/6/9 23:08:14

公司名称打码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
公司名称打码
/** * 公司名称打码处理函数 * 覆盖场景: * 1. 空值/非字符串处理 * 2. 1-10+字不同长度策略 * 3. 包含特殊字符/空格的名称 * 4. 中英文混合名称(按字符长度处理) * 5. 边界值处理(如刚好4字、刚好8字等) * @param {string} name 原始公司名称 * @param {Object} [options] 可选配置 * @param {string} [options.maskChar=*] 打码字符 * @param {boolean} [options.keepSpecialChar=false] 是否保留特殊字符位置(仅打码汉字/字母) * @returns {string} 打码后的名称 */ const maskCompanyName = (name, options = {}) => { // 默认配置 const { maskChar = '*', keepSpecialChar = false } = options; // 1. 空值处理:null/undefined/空字符串/非字符串类型 if (!name || typeof name !== 'string') { return ''; } // 去除首尾空格(中间空格保留) const trimmedName = name.trim(); if (trimmedName.length === 0) { return ''; } const length = trimmedName.length; let maskedName = ''; // 2. 按长度分级处理(覆盖1-10+字所有场景) if (length === 1) { // 1个字:直接打码(避免泄露) maskedName = maskChar; } else if (length === 2) { // 2个字:首字显示 + 1个打码 maskedName = trimmedName.charAt(0) + maskChar; } else if (length === 3) { // 3个字:首字 + 1个打码 + 尾字 maskedName = trimmedName.charAt(0) + maskChar + trimmedName.charAt(2); } else if (length === 4) { // 4个字:首字 + 2个打码 + 尾字(核心优化点) maskedName = trimmedName.charAt(0) + maskChar.repeat(2) + trimmedName.charAt(3); } else if (length >= 5 && length <= 8) { // 5-8字:前2字 + 3个打码 + 尾2字 const prefix = trimmedName.substring(0, 2); const suffix = trimmedName.substring(length - 2); maskedName = `${prefix}${maskChar.repeat(3)}${suffix}`; } else if (length >= 9 && length <= 12) { // 9-12字:前3字 + 4个打码 + 尾3字 const prefix = trimmedName.substring(0, 3); const suffix = trimmedName.substring(length - 3); maskedName = `${prefix}${maskChar.repeat(4)}${suffix}`; } else { // 12字以上:前4字 + 5个打码 + 尾4字(超长名称) const prefix = trimmedName.substring(0, 4); const suffix = trimmedName.substring(length - 4); maskedName = `${prefix}${maskChar.repeat(5)}${suffix}`; } // 3. 特殊处理:保留特殊字符位置(如括号、横线等) if (keepSpecialChar) { const specialCharRegex = /[^a-zA-Z0-9\u4e00-\u9fa5]/; return trimmedName.split('').map((char, index) => { // 特殊字符保留原样,其他字符用打码结果替换 return specialCharRegex.test(char) ? char : maskedName[index] || maskChar; }).join(''); } return maskedName; }; // ================ 测试用例 ================ console.log("1字:", maskCompanyName("企")); // * console.log("2字:", maskCompanyName("企业")); // 企* console.log("3字:", maskCompanyName("企业家")); // 企*家 console.log("4字:", maskCompanyName("科技有限公司")); // 科**司 console.log("5字:", maskCompanyName("北京科技有限公司")); // 北京***公司 console.log("8字:", maskCompanyName("北京中关村科技有限公司")); // 北京***公司 console.log("9字:", maskCompanyName("北京中关村科技发展有限公司")); // 北京中****限公司 console.log("13字:", maskCompanyName("北京中关村科技发展集团股份有限公司")); // 北京中关村*****份有限公司 console.log("含特殊字符:", maskCompanyName("北京(中关村)科技有限公司", { keepSpecialChar: true })); // 北*(中***)限公司 console.log("空值:", maskCompanyName(null)); // "" console.log("空格:", maskCompanyName(" 企业 ")); // 企* console.log("自定义打码符:", maskCompanyName("科技有限公司", { maskChar: '#' })); // 科##司
const maskedCompanyName = maskCompanyName(originalName); console.log(maskedCompanyName);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 2:03:41

【每日一读Day7】搜索引擎DataFlow

&#x1f7e6; 大厂搜索引擎的数据流总图┌──────────┐│ 用户Query │└─────┬────┘↓┌────────────────────┐│ Query Processing │← 分词 / 拼写纠错 / Query Rewrite/同义词扩展└───────┬──────────…

作者头像 李华
网站建设 2026/6/7 8:06:41

基于STM32设计的智能防盗单车锁_349

文章目录 一、前言 1.1 项目介绍 【1】项目开发背景 【2】设计实现的功能 【3】项目硬件模块组成 【4】设计意义 【5】国内外研究现状 【6】摘要 1.2 设计思路 1.3 系统功能总结 1.4 开发工具的选择 【1】设备端开发 【2】上位机开发 1.5 框架图 1.6 原理图 二、硬件选型 2.1 S…

作者头像 李华
网站建设 2026/6/9 21:34:02

Wan2.2-T2V-A14B适用于直播内容生成吗?可行性分析

Wan2.2-T2V-A14B适用于直播内容生成吗&#xff1f;可行性分析 在今天的直播战场上&#xff0c;拼的早已不只是“谁嗓门大”或“谁话术溜”。观众要的是沉浸感、新鲜感和即时共鸣——你前脚刚说“这游戏超刺激”&#xff0c;后脚就得有爆炸特效炸出来&#xff1b;用户弹幕问“这…

作者头像 李华
网站建设 2026/6/10 14:18:50

挑战珠江极致光影,这部纪录片如何靠国产摄像机完成?

一条珠江&#xff0c;流淌着千年商贸往事与人文记忆。拍摄它的纪录片&#xff0c;却是一场对光影的终极挑战——变幻的天色、氤氲的水汽、宏大的江景与细腻的岸边细节&#xff0c;都在考验着每一台摄像机的极限。当《珠江》纪录片团队决定采用博冠B1 8K摄像机完成全片拍摄时&am…

作者头像 李华
网站建设 2026/6/10 14:20:15

thinkphp8下carbon的使用示例

composer require nesbot/carbonuse Carbon\Carbon; use think\response\Json;class Demo {public function index(): string{// 全局设定&#xff08;一次即可&#xff09;date_default_timezone_set(Asia/Shanghai);Carbon::setLocale(zh_CN);// 当前时间对象$now Carbon::n…

作者头像 李华
网站建设 2026/6/10 14:23:55

每日Java面试场景题知识点之-工厂方法模式

每日Java面试场景题知识点之-工厂方法模式 场景问题描述 在开发一个电商平台支付系统时&#xff0c;技术团队面临以下挑战&#xff1a; 系统需要集成多种支付渠道&#xff0c;包括支付宝、微信支付、银联支付等。最初采用硬编码方式实现支付逻辑&#xff0c;每次新增支付渠道都…

作者头像 李华