利用正则表达式验证身份证号

利用正则表达式验证身份证号
利用正则表达式验证身份证号

C# 利用正则表达式验证身份证号

身份证格式验证,以及15.18位互转方法

public string CheckCidInfo18(string cid)

{

string[] aCity = new string[] { null, null, null, null, null, null, null, null, null, null, null, "北京", "天津", "河北", "山西", "内蒙古", null, null, null, null, null, "辽宁", "吉林", "黑龙江", null, null, null, null, null, null, null, "上海", "江苏", "浙江", "安微", "福建", "江西", "山东", null, null, null, "河南", "湖北", "湖南", "广东", "广西", "海南", null, null, null, "重庆", "四川", "贵州", "云南", "西藏", null, null, null, null, null, null, "陕西", "甘肃", "青海", "宁夏", "新疆", null, null, null, null, null, "台湾", null, null, null, null, null, null, null, null, null, "香港", "澳门", null, null, null, null, null, null, null, null, "国外" };

double iSum = 0;

System.Text.Regularexpression_rs.Regex rg = new

System.Text.Regularexpression_rs.Regex(@"^\d{17}(\d|X|x)$");

System.Text.Regularexpression_rs.Match mc = rg.Match(cid);

if (!mc.Success)

{

return "- 您的身份证号码格式有误!";

}

cid = cid.ToLower();

cid = cid.Replace("x", "a");

if (aCity[int.Parse(cid.Substring(0, 2))] == null)

{

return "- 您的身份证号码格式有误!";//非法地区

}

try

{

DateTime.Parse(cid.Substring(6, 4) + "-" + cid.Substring(10, 2) + "-" + cid.Substring(12, 2));

}

catch

{

return "- 您的身份证号码格式有误!";//非法生日

}

for (int i = 17; i >= 0; i--)

iSum += (System.Math.Pow(2, i) % 11) * int.Parse(cid[17 - i].ToString(), System.Globalization.NumberStyles.HexNumber);

}

if (iSum % 11 != 1)

return ("- 您的身份证号码格式有误!");//非法证号

return "";

}

///

/// 验证15位身份证格式

///

///

///

public string CheckCidInfo15(string cid)

{

string[] aCity = new string[] { null, null, null, null, null, null, null, null, null, null, null, "北京", "天津", "河北", "山西", "内蒙古", null, null, null, null, null, "辽宁", "吉林", "黑龙江", null, null, null, null, null, null, null, "上海", "江苏", "浙江", "安微", "福建", "江西", "山东", null, null, null, "河南", "湖北", "湖南", "广东", "广西", "海南", null, null, null, "重庆", "四川", "贵州", "云南", "西藏", null, null, null, null, null, null, "陕西", "甘肃", "青海", "宁夏", "新疆", null, null, null, null, null, "台湾", null, null, null, null, null, null, null, null, null, "香港", "澳门", null, null, null, null, null, null, null, null, "国外" };

System.Text.Regularexpression_rs.Regex rg = new

System.Text.Regularexpression_rs.Regex(@"^\d{15}$");

System.Text.Regularexpression_rs.Match mc = rg.Match(cid);

if (!mc.Success)

{

return "- 您的身份证号码格式有误!";

}

cid = cid.ToLower();

cid = cid.Replace("x", "a");

if (int.Parse(cid.Substring(0, 2)) > aCity.Length)

return "- 您的身份证号码格式有误!";//非法地区

}

if (aCity[int.Parse(cid.Substring(0, 2))] == null)

{

return "- 您的身份证号码格式有误!";//非法地区

}

try

{

DateTime.Parse(cid.Substring(6, 2) + "-" + cid.Substring(8, 2) + "-" + cid.Substring(10, 2));

}

catch

{

return "- 您的身份证号码格式有误!";//非法生日

}

return "";

}

///

/// 15位转18位身份证号

///

///

///

public string per15To18(string perIDSrc)

{

int iS = 0;

//加权因子常数

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

//校验码常数

string LastCode = "10X98765432";

//新身份证号

string perIDNew;

perIDNew = perIDSrc.Substring(0, 6);

//填在第6位及第7位上填上‘1’,‘9’两个数字

perIDNew += "19";

perIDNew += perIDSrc.Substring(6, 9);

//进行加权求和

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

{

iS += int.Parse(perIDNew.Substring(i, 1)) * iW[i];

}

//取模运算,得到模值

int iY = iS % 11;

//从LastCode中取得以模为索引号的值,加到身份证的最后一位,即为新身份证号。

perIDNew += LastCode.Substring(iY, 1);

return perIDNew;

}

///

/// 18位转15位身份证号

///

///

///

public string per18To15(string perIDSrc)

{

//前6位

string str1 = perIDSrc.Substring(0, 6);

//后9位

string str2 = perIDSrc.Substring(8, 9);

//新字符串

string perIDNew = str1 + str2;

return perIDNew;

表单验证和正则表达式

正则表达式和表单验证 主要内容 ?什么是表单的验证 ?表单的操作 ?表单的验证 ?正则表达式的定义 ?正则表达式验证 (一)什么是表单的验证 表单的验证 在JavaScript之前,所有的验证都是发生在服务器上,增加了反应 时间 使用JavaScript验证,则在数据提交到服务器端之前进行一系列的 判断,比如数据不全或无效则取消提交,同时再提示重新输入. 表单的验证一般有两种形式 一个是在button按钮的onclick事件上完成,如果返回false则取消 提交 在提交按钮的onsubmit事件完成,如果返回false,表单不提交 常见的验证 文本框是否为空? 选择型的表单是否选择? 用户输入的邮件地址是否合法? 用户是否已输入合法的日期? (二)表单的操作 引用表单域 根据表单的名字获取表单的引用 var myForm = doucument.forms[“name”];

根据表单数组获取 var myForm = document.forms[0]; 表单中的属性 表单中的方法 表单中的事件 表单域中的通用属性 disabled属性 name属性:name的属性值是可以通过JavaScript改变 form属性:通过form属性可以获得一个表单域所在的表单 表单域中的通用方法 ?focus()方法 ?blur()方法

表单域中的通用事件 onfocus和onblur事件 onclick、onkeydown、onkeyup和onkeypress事件 onmouseover、onmouseout、onmousedown、和onmouseup事件 onchange事件 使用文本域 获取和设置文本域的值 使用select方法选中文本 使用按钮类表单域 简单按钮:最常用的方法捕获onclick事件,然后执行代码 复选按纽:通过checked属性获取,选中时是true,否则为false. 单选按钮:通过checked属性获取,选中时是true,否则为false. 使用下拉列表框 获取和设置下拉列表框的值 下拉列表框的值表示被选中的option标记的value属性 获取选项的个数 select对象有一个length属性,表示选项的个数 获取当前选项的索引 select对象中使用selectedIndex属性获取当前选中的option对象的索引 获取所有选项的集合 用options属性表示所有option组成的集合,option的value代表其值,text属性 代表其中间的文本,selected属性决定该option是否被选中 为select动态添加选项 在所有的option后面添加一个新的选项 Select.options[select.length] = new Option(“optiontext”,”value”); 从select中删除一个选项 ?Select.options[1] = null; 清空一个select 替换一个选项 Select.options[0] = new Option(“optiontext”,”value”);

正则表达式写的form表单验证

希望能帮助更多的人,可以加我qq交流504781715 formzzbds.html