做健身俱樂部網站的目的和意義上海工商網站官網
鶴壁市浩天電氣有限公司
2026/01/24 21:17:39
做健身俱樂部網站的目的和意義,上海工商網站官網,番禺建設網站公司哪家好,開發(fā)網站用什么語言好/*** 公司名稱打碼處理函數* 覆蓋場景#xff1a;* 1. 空值/非字符串處理* 2. 1-10字不同長度策略* 3. 包含特殊字符/空格的名稱* 4. 中英文混合名稱#xff08;按字符長度處理#xff09;* 5. 邊界值處理#xff08;如剛好4字、剛好8字等#xff09;* param {string} nam…/** * 公司名稱打碼處理函數 * 覆蓋場景 * 1. 空值/非字符串處理 * 2. 1-10字不同長度策略 * 3. 包含特殊字符/空格的名稱 * 4. 中英文混合名稱按字符長度處理 * 5. 邊界值處理如剛好4字、剛好8字等 * param {string} name 原始公司名稱 * param {Object} [options] 可選配置 * param {string} [options.maskChar*] 打碼字符 * param {boolean} [options.keepSpecialCharfalse] 是否保留特殊字符位置僅打碼漢字/字母 * 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個打碼 尾字核心優(yōu)化點 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-9u4e00-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(企業(yè))); // 企* console.log(3字, maskCompanyName(企業(yè)家)); // 企*家 console.log(4字, maskCompanyName(科技有限公司)); // 科**司 console.log(5字, maskCompanyName(北京科技有限公司)); // 北京***公司 console.log(8字, maskCompanyName(北京中關村科技有限公司)); // 北京***公司 console.log(9字, maskCompanyName(北京中關村科技發(fā)展有限公司)); // 北京中****限公司 console.log(13字, maskCompanyName(北京中關村科技發(fā)展集團股份有限公司)); // 北京中關村*****份有限公司 console.log(含特殊字符, maskCompanyName(北京(中關村)科技有限公司, { keepSpecialChar: true })); // 北*(中***)限公司 console.log(空值, maskCompanyName(null)); // console.log(空格, maskCompanyName( 企業(yè) )); // 企* console.log(自定義打碼符, maskCompanyName(科技有限公司, { maskChar: # })); // 科##司const maskedCompanyName maskCompanyName(originalName); console.log(maskedCompanyName);