c 正規表示式驗證身份證

2021-05-28 02:28:18 字數 1863 閱讀 9957

身份證格式驗證,以及15.18位互轉方法 

///

/// 驗證18位身份證格式

///

///

/// 返回字串,出錯資訊

public string checkcidinfo18(string cid)

; double isum = 0;

system.text.regularexpressions.regex rg = new system.text.regularexpressions.regex(@"^\d(\d|x|x)$");

system.text.regularexpressions.match mc = rg.match(cid);

if (!mc.success)

cid = cid.tolower();

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

if (acity[int.parse(cid.substring(0, 2))] == null)

trycatch

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

if (isum % 11 != 1)

return ("- 您的身份證號碼格式有誤!");//非法證號

return "";

} ///

/// 驗證15位身份證格式

///

///

///

public string checkcidinfo15(string cid)

; system.text.regularexpressions.regex rg = new system.text.regularexpressions.regex(@"^\d$");

system.text.regularexpressions.match mc = rg.match(cid);

if (!mc.success)

cid = cid.tolower();

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

if (int.parse(cid.substring(0, 2)) > acity.length)

if (acity[int.parse(cid.substring(0, 2))] == null)

trycatch

return "";

} ///

/// 15位轉18位身份證號

///

///

///

public string per15to18(string peridsrc)

; //校驗碼常數

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++)

//取模運算,得到模值

int iy = is % 11;

//從lastcode中取得以模為索引號的值,加到身份證的最後一位,即為新身份證號。

peridnew += lastcode.substring(iy, 1);

return peridnew;

} ///

/// 18位轉15位身份證號

///

///

///

public string per18to15(string peridsrc)

正規表示式驗證身份證

function isidcardno num d 0 9 x test num 校驗位按照iso 7064 1983.mod 11 2的規定生成,x可以認為是數字10。下面分別分析出生日期和校驗位 var len,re len num.length if len 15 d d d d var ar...

js正規表示式,驗證身份證

身份證校驗 param idcard 身份證號 return 格式是否正確 function validateidcard idcard 0 d 1 0 2 0 1 2 d 3 0 1 d 1 9 d 1 9 d 0 d 1 0 2 0 1 2 d 3 0 1 d d xx 如果通過該驗證,說明身份...

正規表示式 郵箱 身份證的驗證

要嚴格的驗證手機號碼,必須先要清楚現在已經開放了哪些數字開頭的號碼段,目前國內號碼段分配如下 移動 134 135 136 137 138 139 150 151 157 td 158 159 187 188 聯通 130 131 132 152 155 156 185 186 電信 133 153...