Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。
JAVA身分證驗證&提醒視窗
Q1.身分證驗證我是在"網路建置百寶箱"去下載的
但是我的身份證最後一碼是0,他會顯示我的身分證字號是錯誤
要怎麼處理呢?
<script language="JavaScript">
<!--
var local=new Array(34)
local[10]='A'
local[11]='B'
local[12]='C'
local[13]='D'
local[14]='E'
local[15]='F'
local[16]='G'
local[17]='H'
local[18]='J'
local[19]='K'
local[20]='L'
local[21]='M'
local[22]='N'
local[23]='P'
local[24]='Q'
local[25]='R'
local[26]='S'
local[27]='T'
local[28]='U'
local[29]='V'
local[32]='W'
local[30]='X'
local[31]='Y'
local[33]='Z'
function checkid(id){
id=id.toUpperCase()
if(lengtherr(id)){
alert('輸入的字號長度有誤!')
}else if(firstlettererr(id)){
alert('身分證第一碼查無此英文字母:'+id.substring(0,1))
}else if(numerr(id)){
alert('輸入的身分證後九碼應為數字!')
}else if(checkerr(id)){
alert('您輸入的身分證檢查碼有誤!')
}else{
alert('您輸入的身分證字號完全正確!')
}
}
function lengtherr(id){
if(id.length<10)
return 1
else
return 0
}
function firstlettererr(id){
var fl=id.substring(0,1)
var haserr=1
for(i=10;i<=33;i++){
if(local[i]!=fl)
continue
else{
haserr=0
break
}
}
if(haserr==1)
return 1
else
return 0
}function numerr(id){
var haserr=0
for(i=1;i<=9;i++){
if(parseInt(id.substring(i,i+1))>0 || id.substring(i,i+1)=='0')
continue
else{
haserr=1
break}
}
if(haserr==1)
return 1
else
return 0
}
function checkerr(id){
var se=new Array(10)
var we=0
var checkcode=0
for(i=10;i<=33;i++){
if(local[i]==id.substring(0,1)){
se[0]=parseInt((i+'0').substring(0,1))
se[1]=parseInt((i+'0').substring(1,2))
break
}
}
for(i=1;i<=9;i++){
se[i+1]=parseInt(id.substring(i,i+1))
}
for(i=0;i<=10;i++){
if(i==0)
we=we+se[i]
else
we=we+(se[i]*(10-i))
}
checkcode=((10-mod(we,10))+'0').substring(0,1)
if(checkcode!=id.substring(9,10))
return 1
else
return 0
}
function mod(a,b){
var r
r=Math.round(a/b)
if((b*r)>a)
r-=1
return (a-(b*r))
}
// -->
</script>
<form name="f" onsubmit="checkid(document.f.id.value)">
<input type="text" size="20" maxlength="10" name="id" value='填入您的身分證字號' onFocus="if (this.value=='填入您的身分證字號') this.value='';">
<input type="button" name="bname" value="確定" onclick="checkid(document.f.id.value)">
Q2.
(1)註冊表單有"必填欄位"要怎麼讓他在按下送出後會顯示出未填寫的欄位呢?
(2)多個核取方塊至少要有一個選取該怎麼寫?
麻煩各位了!
TO bird:
你給我的那個,測試是OK
但是沒辦法傳到資料庫耶!!
2 個解答
- 1 十年前最愛解答
說明 1.--->
依據 http://my.so-net.net.tw/idealist/Other/SSN.html 的身份證字號規則,
檢查號碼是每個相對應數字乘上權數之積相加後除以模數10取其餘數,
由模數減去餘數得檢查號碼,若餘數為0時,則設定其檢查碼為0。
照此邏輯,我將您問題中第101~105行,即:
=======================================================================
checkcode=((10-mod(we,10))+'0').substring(0,1)
if(checkcode!=id.substring(9,10))
return 1
else
return 0
=======================================================================
修改如下:
=======================================================================
//乘上權數之積+檢查碼 % 10
we = (we + eval(id.substring(9,10)))%10;
//若為 0 即正確 return 0 否則 return 1;
if(we==0) return 0;
else return 1;
=======================================================================
說明 2.--->
由於字數限制,故將
Q2.
(1)註冊表單有"必填欄位"要怎麼讓他在按下送出後會顯示出未填寫的欄位呢?
(2)多個核取方塊至少要有一個選取該怎麼寫?
貼於底下 url
- ?Lv 61 十年前
這裡有正確的javascript驗證
http://www.vcnet.tw/inmarkblue/markshu?n=convew&i=...
2008-04-12 15:35:27 補充:
您好:
寫入資料庫要用後端語言, 例如asp.net c#
client端負責對資料做驗證格式而已
server端再寫對資料庫的存取
就是一般的client server架構