asp,驗證身份證號碼的正規表示式怎麼用 請舉例

2022-01-01 07:44:17 字數 3854 閱讀 1548

1樓:匿名使用者

這是我自己在用的,乙個身份證驗證,不是用正值表示式的,不過也挺好用的,你試試看吧,直接呼叫就行了

<%'驗證身份證號是否正確的**

function idcheck(e)

idcheck = true

arrverifycode = split("1,0,x,9,8,7,6,5,4,3,2", ",")

wi = split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2", ",")

checker = split("1,9,8,7,6,5,4,3,2,1,1", ",")

if len(e) < 15 or len(e) = 16 or len(e) = 17 or len(e) > 18 then

'idcheck= "身份證號共有 15 碼或18位"

idcheck = false

exit function

end if

dim ai

if len(e) = 18 then

ai = mid(e, 1, 17)

elseif len(e) = 15 then

ai = e

ai = left(ai, 6) & "19" & mid(ai, 7, 9)

end if

if not isnumeric(ai) then

'idcheck= "身份證除最後一位外,必須為數字!"

idcheck = false

exit function

end if

dim stryear, strmonth, strday

stryear = cint(mid(ai, 7, 4))

strmonth = cint(mid(ai, 11, 2))

strday = cint(mid(ai, 13, 2))

birthday = trim(stryear) + "-" + trim(strmonth) + "-" + trim(strday)

if isdate(birthday) then

if datediff("yyyy",now,birthday)<-140 or cdate(birthday)>date() then

'idcheck= "身份證輸入錯誤!"

idcheck = false

exit function

end if

if strmonth > 12 or strday > 31 then

idcheck = false

'idcheck= "身份證輸入錯誤!"

exit function

end if

else

'idcheck= "身份證輸入錯誤!"

idcheck = false

exit function

end if

dim i, totalmulaiwi

for i = 0 to 16

totalmulaiwi = totalmulaiwi + cint(mid(ai, i + 1, 1)) * wi(i)

next

dim modvalue

modvalue = totalmulaiwi mod 11

dim strverifycode

strverifycode = arrverifycode(modvalue)

ai = ai & strverifycode

idcheck = ai

if len(e) = 18 and e <> ai then

'idcheck= "身份證號碼輸入錯誤!"

idcheck = false

exit function

end if

end function

%>

2樓:匿名使用者

\d|\d

驗證身份證號碼的正確正規表示式

3樓:雪城風嘉

驗證身份證號碼的正確正規表示式 /(^\d$)|(^\d$)|(^\d(\d|x|x)$)/

function iscardno(card)

// 身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元x

var reg = /(^\d$)|(^\d$)|(^\d(\d|x|x)$)/;

if(reg.test(card) === false)

alert("身份證輸入不合法");

return  false;

}  }

擴充套件資料:

正規表示式的書寫語法

1、^  表示匹配字串的開始位置  (例外  用在中括號中[ ] 時,可以理解為取反,表示不匹配括號中字串)

2、$  表示匹配字串的結束位置

3、*  表示匹配 零次到多次

4、+  表示匹配 一次到多次 (至少有一次)

5、?  表示匹配零次或一次

6、.  表示匹配單個字元

7、|  表示為或者,兩項中取一項

8、(  ) 小括號表示匹配括號中全部字元

9、[  ] 中括號表示匹配括號中乙個字元 範圍描述 如[0-9 a-z a-z]

10、 大括號用於限定匹配次數  如 表示匹配n個字元  表示至少匹配n個字元  表示至少n,最多m

11、\  轉義字元 如上基本符號匹配都需要轉義字元   如 \*  表示匹配*號

12、\w 表示英文本母和數字  \w  非字母和數字

13、\d  表示數字   \d  非數字

4樓:維灣教育培訓

isidcard1=/^[1-9]\d((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([0-9]|x)$/;

15位到18位的正則

正則只能驗證身份證的格式是否正確,是驗證不了真偽的,只有公安系統裡才能驗證身份證號真假。

5樓:忙中偷閒帶寶寶

你直接把你的身份證號碼輸進去就可以了,直接驗證。

6樓:匿名使用者

var myregexp=/^\d[\d|x]$|^\d$/i;用myregexp就可以驗證輸入的字串是否符合身份證的編碼規則了或者你直接把/^\d[\d|x]$|^\d$/i;放入控制項的正規表示式屬性裡面就ok了

7樓:

var reg_idcard = /^(^[1-9]\d((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d$)|(^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d((19\d(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(19\d(0[13578]|1[02])31)|(19\d02(0[1-9]|1\d|2[0-8]))|(19([13579][26]|[2468][048]|0[48])0229))((\d)|\d[xx])$)$/;

這個是我網上找了 兩個特別常見的身份證正則(然而都是不全的),然後自己研究了會拼接起來的,我驗證是沒問題的,你們試試看吧!

測試資料:

15位:440253850213582

18位:34040219990909021118位帶x:52242619811105565x

身份證號碼最後是x怎麼輸入,身份證號碼最後乙個是x怎麼輸入

直接輸入英文本母 x 就可以,如果沒有大小寫要求,可以輸入小寫字母 x 或者大寫字母 x 但是在 輸入時,則以 號鍵代替。身份證號碼前六位為行政區劃 第七至第十四位為出生日期碼,第15至17位為順序碼,第18位為校驗碼。作為尾號的校驗碼,是由號碼編制單位按統一的公式計算出來的,如果某人的尾號是0 9...

身份證號碼是終身不變的麼,身份證號碼終身不變嗎 身份證號碼是終身的嗎

乙個人就只有對應的乙個身份證號。一旦確定,終生不能變更。居民身份證的號碼是按照國家的標準編制的,由18位組成 前六位為行政區劃 第七至第十四位為出生日期碼,第15至17位為順序碼,第18位為校驗碼。作為尾號的校驗碼,是由號碼編制單位按統一的公式計算出來的,如果某人的尾號是0 9,都不會出現x,但如果...

怎麼查自己的身份證號碼,自己身份證號碼忘了怎麼查?

個人覺得如果你想要知道自己的身份證號碼的話,那麼你可以拿出你的身份證上面就有你的身份證號碼呀,也可以檢視戶口本上面。一般來說,身份證號碼是出生後的戶口本上以及你的各類證件上會有你的身份證號碼。附表 身份證號碼由18位數字組成。第1 2位數字表示 所在省份的 第3 4位數字表示 所在城市的 第5 6位...