0
点赞
收藏
分享

微信扫一扫

c# - - - 将身份证号中的出生年月日部分替换为星号(*)

以下是一个C#方法,用于将身份证号中的出生年月日部分替换为星号(*):

using System;

public class IdCardProcessor
{
    /// <summary>
    /// 将身份证号中的出生年月日替换为星号
    /// </summary>
    /// <param name="idCardNumber">18位身份证号</param>
    /// <returns>处理后的身份证号,出生年月日部分被替换为*号</returns>
    public static string MaskBirthDateInIdCard(string idCardNumber)
    {
        // 检查身份证号是否有效(18位)
        if (string.IsNullOrEmpty(idCardNumber) || idCardNumber.Length != 18)
        {
            throw new ArgumentException("请提供有效的18位身份证号", nameof(idCardNumber));
        }
        
        // 身份证号的第7-14位是出生年月日(例如:19900101)
        // 保留前6位和后4位,中间8位替换为*
        return idCardNumber.Substring(0, 6) + "********" + idCardNumber.Substring(14, 4);
    }
    
    // 使用示例
    public static void Main()
    {
        string originalIdCard = "110101199001011234";
        string maskedIdCard = MaskBirthDateInIdCard(originalIdCard);
        
        Console.WriteLine("原始身份证号: " + originalIdCard);
        Console.WriteLine("处理后身份证号: " + maskedIdCard);
        // 输出结果: 110101********1234
    }
}

这个方法的工作原理是:

  1. 首先验证输入的身份证号是否为有效的18位字符串
  2. 身份证号的第7-14位(索引6-13)代表出生年月日
  3. 保留前6位和后4位,中间8位出生年月日替换为8个星号(*)
  4. 返回处理后的身份证号

例如,对于身份证号110101199001011234,处理后会变成110101********1234

举报

相关推荐

0 条评论