修复总结后的问题,详见企业微信文档

This commit is contained in:
gyq
2026-05-07 14:34:03 +08:00
parent ffad9432c5
commit ea5a4c14e9
41 changed files with 2678 additions and 1120 deletions

View File

@@ -322,3 +322,41 @@ export function isValidMobile(phone: string): boolean {
const mobileRegex = /^1[3-9]\d{9}$/;
return mobileRegex.test(s);
}
/**
* 手机号脱敏:隐藏中间四位数字
* @param {string | number} phone - 原始手机号(支持数字/字符串)
* @returns {string} 脱敏后的手机号,如 138****1234
*/
export function maskPhone(phone) {
// 先转成字符串,避免传入数字类型报错
const phoneStr = String(phone).trim();
// 简单校验必须是11位数字
if (!/^1\d{10}$/.test(phoneStr)) {
console.warn('手机号格式不正确');
return phoneStr; // 格式错误直接返回原值
}
// 核心前3位 + **** + 后4位
return phoneStr.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
}
/**
* 金额保留两位小数 不四舍五入
* @param {number} num 金额数字
* @param {boolean} hasSymbol 是否带¥符号默认true
* @returns {string}
*/
export function formatMoney(num, hasSymbol = true) {
// 防止非数字、空值报错
if (isNaN(Number(num))) num = 0;
// 不四舍五入截断两位小数
const value = Math.floor(Math.abs(num) * 100) / 100;
// 拼接两位小数
const fixedNum = value.toFixed(2);
// 负数处理
const result = num < 0 ? `-${fixedNum}` : fixedNum;
// 默认返回带¥
return hasSymbol ? `¥${result}` : result;
}