验证身份证,并把15位自动升级为18位 身份证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])
{
// 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;
}
}
更多阅读
MPG转3GP,怎么把MPG转成3GP rmvb转3gp格式软件
MPG转3GP,怎么把MPG转成3GP——简介MPG转3GP,将MPG格式转换成手机等移动设备支持的3GP格式。MPG转成3GP使用哪款软件最好用?国内非常流行的应用于移动设备的转换软件《MP4/RM转换专家》,就是小编在这里介绍
淘宝购物时,怎么把宝贝加入购物车一起付款 加入购物车
淘宝购物时,怎么把宝贝加入购物车一起付款——简介很多朋友在淘宝购物时,都是分开购买,因为不知道怎么使用购物车,下面小编教大家在淘宝购物时,怎么把宝贝加入购物车一起付款吧!淘宝购物时,怎么把宝贝加入购物车一起付款——工具/原料淘宝
如何识别图片中的文字,并把图形转换成文本 百度在线文字识别转换
如何识别图片中的文字,并把图形转换成文本——简介很多文字有时是以图片的形式存在的,比如扫描的图片,再比如网上的一文字截图,如果要一个字一个字的输入实在太慢了,所以我们需要自动识别的软件来帮我们识别文字如何识别图片中的文
为什么新中国建立后撤销了西康省,并把所辖地区一分为二并入四川 西康省省会
务必请详细解答:1.四川藏区及其问题的由来?2.撤销拆分的原因,是否拆解所谓大藏区?3.为何在传统天府之国加入藏区?(主要想问为什么不全合并入西藏自治区,而是划入川。)【王宇的回答(8票)】:藏族实际上有三个地区,即藏、康、安多(实际也对应
如何将办公室的两台电脑连接起来,并可共用一台打印机? - 外设讨 共用办公室
1.配置打印机主机首先我们要在主机上配置打印机。我们暂且称直接连接打印机的电脑为“主机”,而局域网内其他需要和主机共享打印的电脑称为“客户机”。第一步:将打印机连接至主机,打开打印机电源,通过主机的“控制面板”进入到“打印机