修复总结后的问题,详见企业微信文档
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user