Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务

学了一段时间的Web服务,今天利用网上的资源,做了一个15或18位身份证验证带输出省、市、区、生日、性别,主要是想练练手。现在把过程和心得分享给大家。

文章在我小站上的地址:Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务

Web服务地址:http://www.h2bbs.com/Weather/IDcard.asmx

 

直接发代码:

 

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务      /// <summary>
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务    
/// IDcard 的摘要说明
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务    
/// </summary>

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务     [WebService(Namespace  =   " http://www.h2bbs.com/Weather/IDcard.asmx " , Name  =   " IDcardWS " , Description  =   " 判断身份证号是否合法 " )]
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务    [WebServiceBinding(ConformsTo 
=  WsiProfiles.BasicProfile1_1)]
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务    [ToolboxItem(
false )]
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务    
public   class  IDcard : System.Web.Services.WebService
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务    
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        [WebMethod(Description 
= "输入15或18位身份证号码以验证其有效性")]
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        
public idCardClass CheckCardidInfo(string cardid)
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
string[] strProvince = new string[] nullnullnullnullnullnullnullnullnullnullnull"北京""天津""河北""山西""内蒙古"nullnullnullnullnull"辽宁""吉林""黑龙江"nullnullnullnullnullnullnull"上海""江苏""浙江""安微""福建""江西""山东"nullnullnull"河南""湖北""湖南""广东""广西""海南"nullnullnull"重庆""四川""贵州""云南""西藏"nullnullnullnullnullnull"陕西""甘肃""青海""宁夏""新疆"nullnullnullnullnull"台湾"nullnullnullnullnullnullnullnullnull"香港""澳门"nullnullnullnullnullnullnullnull"国外" };
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
double iSum = 0;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            idCardClass cardidData 
= new idCardClass();
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            System.Text.RegularExpressions.Regex rg 
= new System.Text.RegularExpressions.Regex(@"^\d{17}(\d|x)$|^\d{15}$");
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            System.Text.RegularExpressions.Match mc 
= rg.Match(cardid);
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
if (!mc.Success)
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardidData.isValid 
= false;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardidData.chkInfo 
= "不是有效的身份证号";
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                
return cardidData;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
if (cardid.Length == 15)
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardid 
= this.convert15to18(cardid);
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardid 
= cardid.ToLower();
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardid 
= cardid.Replace("x""a");
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
if (strProvince[int.Parse(cardid.Substring(02))] == null)
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardidData.isValid 
= false;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardidData.chkInfo 
= "非法地区";
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                
return cardidData;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
try
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                DateTime.Parse(cardid.Substring(
64+ "-" + cardid.Substring(102+ "-" + cardid.Substring(122));
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
catch
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardidData.isValid 
= false;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardidData.chkInfo 
= "非法生日";
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                
return cardidData;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
for (int i = 17; i >= 0; i--)
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                iSum 
+= (System.Math.Pow(2, i) % 11* int.Parse(cardid[17 - i].ToString(), System.Globalization.NumberStyles.HexNumber);
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
if (iSum % 11 != 1)
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardidData.isValid 
= false;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                cardidData.chkInfo 
= "非法证号";
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                
return cardidData;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            cardidData.isValid 
= true;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            cardidData.chkInfo 
= strProvince[int.Parse(cardid.Substring(02))] + "," + cardid.Substring(64+ "" + cardid.Substring(102+ "" + cardid.Substring(122+ "日," + (int.Parse(cardid.Substring(161)) % 2 == 1 ? "" : "");
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
return cardidData;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        
//将15位身份证号码转换为18位
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务
        private string convert15to18(string cardid)
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
char[] strJiaoYan = '1''0''X''9''8''7''6''5''4''3''2' };
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
int[] intQuan = 79105842163791058421 };
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
string strTemp;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
int intTemp = 0;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            strTemp 
= cardid.Substring(06+ "19" + cardid.Substring(6);
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
for (int i = 0; i <= strTemp.Length - 1; i++)
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务                intTemp 
+= int.Parse(strTemp.Substring(i, 1)) * intQuan[i];
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            intTemp 
= intTemp % 11;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
return strTemp + strJiaoYan[intTemp];
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        
//用于保存身份证验证结果的类
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务
        public class idCardClass
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
public idCardClass()
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
{
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
public bool isValid;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务            
public string chkInfo;
Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务        }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务    }

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务

 

下面这个效果是我原来的带输出省、市、区的身份证号Web服务,但想想有点漏洞,而且他关联数据库,所以也就没发这个,上面的代码是有点啰嗦,园子里有人写过新的验证15位、18位的身份证号验证,大家可以去搜搜,不过他好像不能输出省。

 

Web Service学习笔记:15或18位身份证验证带输出省、生日、性别Web服务

你可能感兴趣的:(web Service)