using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Text.RegularExpressions;
using UnityEngine.UI;
public class RealNameAuthentication : MonoBehaviour
{
// 输入全部身份证号码,计算出出生年月日以及性别和年龄
private void ParseIdCard(string val)
{
string birthdayValue = "19931221";
string sexId = "";
string sexText = "";
if (15 == val.Length) //15位身份证号码
{
birthdayValue = val[6].ToString() + val[7].ToString();
if (int.Parse(birthdayValue) < 10)
{
birthdayValue = "20" + birthdayValue;
}
else
{
birthdayValue = "19" + birthdayValue;
}
birthdayValue = birthdayValue + '-' + val[8] + val[9] + '-' + val[10] + val[11];
if (int.Parse(((val[14] / 2) * 2).ToString()) != val[14])
{
sexId = "1";
sexText = "男";
}
else
{
sexId = "2";
sexText = "女";
}
}
if (18 == val.Length)
{ //18位身份证号码
birthdayValue = val[6].ToString() + val[7] + val[8] + val[9] + '-' + val[10] + val[11] + '-' + val[12] + val[13];
if (int.Parse((val[16] / 2).ToString()) * 2 != val[16])
{
sexId = "1";
sexText = "男";
}
else
{
sexId = "2";
sexText = "女";
}
}
//年龄
birthdayValue = birthdayValue.Replace("-", "/");
string[] YMD = birthdayValue.Split('/');
DateTime dt1 = new DateTime(int.Parse(YMD[0]), int.Parse(YMD[1]), int.Parse(YMD[2]));
DateTime dt2 = new DateTime();
int age = dt2.Year - dt1.Year;
var m = dt2.Month - dt1.Month;
if (m < 0)
age--;
// 返回 2017/12/21 "1" "男" 29
//return new Array(birthdayValue, sexId, sexText, age);
}
// 验证身份证号
private string CheckIdcard(string idcard)
{
idcard = idcard.ToUpper();
string[] Errors = new string[] { "校验成功!", "身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!", "身份证号码校验错误!",
"身份证
【C#】身份证本地验证
该C#代码实现了身份证号码的本地验证,包括15位和18位身份证的出生日期、性别和年龄计算,以及身份证号码的合法性检查,如地区编码、出生日期范围和校验码验证。
摘要由CSDN通过智能技术生成