验证身份证,并把15位自动升级为18位 身份证15位转18位工具

#region 检测身份证、将15位自动升级18位

//检查身份证是否是正确格式

public static bool checkCard(string cId)

{

string pattern;

if (cId.Length == 15)

{

pattern = @"^d{15}$";//正则表达式,15位且全是数字

if (!IsRegEx(pattern, cId))

{

// alert("15位身份证号码必须为数字!")

return false;

}

if (!IsDate("19" + cId.Substring(6, 2), cId.Substring(8, 2), cId.Substring(10, 2)))

{ // alert("身份证号码中所含日期不正确")

return false;

}

}

else if (cId.Length == 18)

{

pattern = @"^d{17}(d|x|X)$";//正则表达式,18位且前17位全是数字,最后一位只能数字,x,X

if (!IsRegEx(pattern, cId))

{

// alert("18位身份证号码必须为数字!")

return false;

}

if (!IsDate(cId.Substring(6, 4), cId.Substring(10, 2), cId.Substring(12, 2)))

{

// alert("身份证号码中所含日期不正确")

return false;

}

string[] strJiaoYan = { "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2" };

int[] intQuan = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 };

int intTemp = 0;

for (int i = 0; i < cId.Length - 1; i++)

intTemp += int.Parse(cId.Substring(i, 1)) * intQuan[i];

intTemp %= 11;

if (cId.Substring(cId.Length - 1).ToUpper() != strJiaoYan[intTemp])
验证身份证,并把15位自动升级为18位 身份证15位转18位工具

{

// alert("验证码失败!")

return false;

}

}

else

{

//MessageBox.Show("长度必须为15或18!");

return false;

}

return true;

}

//15位身份证转18位

public static string C15ToC18(string c15)

{

string cId;

if (c15.Length == 15)

{

string pattern = @"^d{15}$";

if (!IsRegEx(pattern, c15))

{

return "";

}

if (!IsDate("19" + c15.Substring(6, 2), c15.Substring(8, 2), c15.Substring(10, 2)))

{

return "";

}

cId = c15.Substring(0, 6) + "19" + c15.Substring(6);

string[] strJiaoYan = { "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2" };

int[] intQuan = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 };

int intTemp = 0;

for (int i = 0; i < 17; i++)

intTemp += int.Parse(cId.Substring(i, 1)) * intQuan[i];

intTemp %= 11;

cId = cId + strJiaoYan[intTemp];

return cId;

}

return c15;

}

#endregion

/// <summary>

/// 是否是合法的日期

/// </summary>

/// <param name="intYear"></param>

/// <param name="intMonth"></param>

/// <param name="intDay"></param>

/// <returns></returns>

public static bool IsDate(string intYear, string intMonth, string intDay)

{

if (!IsNumeric(intYear) || !IsNumeric(intMonth) || !IsNumeric(intDay))

{

return false;

}

else

{

if (int.Parse(intMonth) > 12 || int.Parse(intMonth) < 1)

{

return false;

}

else

{

if (int.Parse(intDay) < 1 || int.Parse(intDay) > 31)

{

return false;

}

else

{

if ((int.Parse(intMonth) == 4 || int.Parse(intMonth) == 6 || int.Parse(intMonth) == 9 || int.Parse(intMonth) == 11) && (int.Parse(intDay) > 30))

{

return false;

}

else

{

if (int.Parse(intMonth) == 2)

{

if (int.Parse(intDay) > 29) return false;

if ((((int.Parse(intYear) % 100 == 0) && (int.Parse(intYear) % 400 != 0)) || (int.Parse(intYear) % 4 != 0)) && (int.Parse(intDay) > 28)) return false;

}

}

}

return true;

}

}

}

/// <summary>

/// 正则验证的

/// </summary>

/// <param name="regExValue">正则表达式</param>

/// <param name="itemValue">被验证的数据</param>

/// <returns></returns>

private static bool IsRegEx(string regExValue, string itemValue)

{

try

{

Regex regex = new System.Text.RegularExpressions.Regex(regExValue);

if (regex.IsMatch(itemValue)) return true;

else return false;

}

catch (Exception)

{

return false;

}

}

  

爱华网本文地址 » http://www.413yy.cn/a/25101013/162323.html

更多阅读

MPG转3GP,怎么把MPG转成3GP rmvb转3gp格式软件

MPG转3GP,怎么把MPG转成3GP——简介MPG转3GP,将MPG格式转换成手机等移动设备支持的3GP格式。MPG转成3GP使用哪款软件最好用?国内非常流行的应用于移动设备的转换软件《MP4/RM转换专家》,就是小编在这里介绍

淘宝购物时,怎么把宝贝加入购物车一起付款 加入购物车

淘宝购物时,怎么把宝贝加入购物车一起付款——简介很多朋友在淘宝购物时,都是分开购买,因为不知道怎么使用购物车,下面小编教大家在淘宝购物时,怎么把宝贝加入购物车一起付款吧!淘宝购物时,怎么把宝贝加入购物车一起付款——工具/原料淘宝

声明:《验证身份证,并把15位自动升级为18位 身份证15位转18位工具》为网友死丢屁的分享!如侵犯到您的合法权益请联系我们删除