String.Mask()、隐藏字符串中部分字符

作者 the7
发布于 2021年08月02日
浏览 119

主要用于隐藏姓名、手机号、信用卡号等,如界面上要求隐藏手机号中间4位。

String.Mask()、隐藏字符串中部分字符

/// <summary>
/// 隐藏字符串中部分字符
/// </summary>
/// <param name="value"></param>
/// <param name="fromStart">开始位置(需大于等于1)</param>
/// <param name="toEnd">结束位置(需小于整个字符串长度,且大于fromStart)</param>
/// <param name="maskChar">替换的字符</param>
/// <returns></returns>
public static string Mask(this string value, int fromStart, int toEnd, char maskChar='*')
{
    if (string.IsNullOrEmpty(value))  
        return value;
    
    if (fromStart < 1) fromStart = 1;
    if (fromStart > value.Length) return value;
    if (toEnd < fromStart) return value;
    if (toEnd > value.Length) toEnd = value.Length;
    
    var sb = new StringBuilder(value.Length);
    sb.Append(value[..(fromStart-1)]);
    for (var i = fromStart; i <= toEnd; i++)
        sb.Append(maskChar);
    sb.Append(value[toEnd..]);
    return sb.ToString();
}

如何使用

var str = "14223832374";
var maskString = str.Mask(4, 7);
Console.WriteLine(maskString); //输出 142****2374
标签云
asp.net core (9) google登录 (1) css (1) less calc (1) C# (5) C#进制转换 (1) Authentication (1) 注销 (1) 登录 (1) 验证 (1) scroll-view (1) 微信小程序 (4) 滚动到底部 (1) StackExchange.Redis (1) google (1) 百度 (1) nginx (2) 大文件 (2) 微信小程序c#解密 (1) 微信小程序获取手机号 (1) openid (1) session_key (1) CDN (1) URL鉴权 (1) 阿里云 (1) async (1) await (1) 禁止下拉上滑效果 (1) Index类型 (1) Range类型 (1) dontent publish (1) dotnet publish在线生成器 (1) System.DrawingCore.GDIPlus报错 (1) centos (1) 中文字体 (1) SqlBulkCopy (1) SqlSugar (1) JWT (5) 认证 (3) RSA JWT (1) 非对称加密 (1) 写信 (1) 见字如面 (1) 优化建议 (2) 正确操作字符串 (1) Java (1) JWT退出 (1) RefreshToken (1) .NET Core网站开发框架 (1) Moz (3) 墨子 (1) JSON.NET (1) Newtonsoft (1) System.Text.Json (1) 自定义后台路径 (1) .netcore (1) quartz (2) 作业调度框架 (1) 作业调度 (1) 定时任务 (1) exception (1) 异常处理 (1) HttpClient (1) IHttpClientFactory (1) RDM (1) Redis (1) Redis Desktop Manager (1) RedisDesktopManager (1) linux (1) mac (1) windows (1) Could not get any response (1) postman (1) leetcode (2) 力扣 (1) 回文字符串 (1) 面试刷题 (1) centos7 (1) php安装 (1) 网易云插件 (1) 马甲App (1) Discuz插件 (1) 网易云音乐 (1) Blazor (1) 五子棋 (1) c#解题 (1) 最长连续序列 (1) Swagger (5) 在线文档 (1) blob (1) mp4 (1) 视频 (1) big file (1) 上传 (1) s (1) Azure (1) Azure Key Vault (1) Configuration (1) 密钥保管库 (1) Dapper安装 (1) Dapper是什么 (1) Dapper连接Mysql (1) Dapper连接SqlServer (1) dapper (1) int (1) range (1) net6 (1) 数据结构 (1) Span<T> (1) 压缩css (1) ISession Extension (1) String.IsNumeric、扩展方法 (1) 身份证号码校验 (1) IsValidCnMobile (1) 手机号校验 (1) .NET 6 (1) 接口过期 (1) extension (2) 扩展方法 (2) 隐藏字符串中部分字符 (1) 隐藏手机号中间四位 (1) 验证是否是合法ipv4地址 (1)