-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Description
问题描述及重现代码:
IsValid() 方法校验始终不通过,15位和18位均有此类问题
15位和18为在区域校验均存在问题
且 获取生日信息、替换生日、替换性别、随机生成身份证号码 都无法正常使用。(生成随机身份证会导致堆栈溢出使程序崩溃退出,因为始终无法校验通过)
// c# code
// 验证身份证号码是否合法
var idcard = "110101200510284511";
// var idcard = "511121820301053";
var isValid = IdcardUtil.IsValid(idcard);
Console.WriteLine("身份证号码 {0} 是否合法:{1}", idcard, isValid);
// 获取身份证号码的生日信息
var birthday = IdcardUtil.GetBirthday(idcard);
Console.WriteLine("身份证号码 {0} 的生日为 {1}", idcard, birthday?.ToString("yyyy年MM月dd日"));
// 获取身份证号码的性别信息
var gender = IdcardUtil.GetGender(idcard);
Console.WriteLine("身份证号码 {0} 的性别为 {1}", idcard, gender == IdcardUtil.Gender.Male ? "男" : "女");
// 将身份证号码中的生日部分替换成指定的日期,并返回新的身份证号码
var newBirthday = new DateTime(1992, 4, 15);
var newIdcard1 = IdcardUtil.ReplaceBirthday(idcard, newBirthday);
Console.WriteLine("将身份证号码 {0} 中的生日部分替换成 {1},得到新的身份证号码 {2}", idcard, newBirthday.ToString("yyyyMMdd"), newIdcard1);
// 将身份证号码中的性别部分替换成指定的性别,并返回新的身份证号码
var newGender = IdcardUtil.Gender.Female;
var newIdcard2 = IdcardUtil.ReplaceGender(idcard, newGender);
Console.WriteLine("将身份证号码 {0} 中的性别部分替换成 {1},得到新的身份证号码 {2}", idcard, newGender == IdcardUtil.Gender.Male ? "男" : "女", newIdcard2);
// 生成一个随机的身份证号码
var randomIdcard = IdcardUtil.GenerateRandomIdcard();
Console.WriteLine("随机生成一个身份证号码:{0}", randomIdcard);具体版本
2023.914.2 ~ 2023.917.1-pre-231010054442
Metadata
Metadata
Assignees
Labels
No labels