optimized: 顧問結案頁面的身份證字號驗證的地方,添加新舊居留證驗證邏輯
| | |
| | | } |
| | | |
| | | checkIdentityId (id) { |
| | | const tab = "ABCDEFGHJKLMNPQRSTUVXYWZIO"; |
| | | const A1 = [ 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3 ]; |
| | | const A2 = [ 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5 ]; |
| | | const Mx = [ 9,8,7,6,5,4,3,2,1,1 ]; |
| | | const tab = "ABCDEFGHJKLMNPQRSTUVXYWZIO"; |
| | | const A1 = [ 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3 ]; |
| | | const A2 = [ 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5 ]; |
| | | const Mx = [ 9,8,7,6,5,4,3,2,1,1 ]; |
| | | |
| | | if ( id.length != 10 ) return false; |
| | | let i = tab.indexOf( id.charAt(0) ); |
| | | if ( i == -1 ) return false; |
| | | let sum = A1[i] + A2[i]*9; |
| | | if ( id.length != 10 ) return false; |
| | | let i = tab.indexOf( id.charAt(0) ); |
| | | if ( i === -1 ) return false; |
| | | let sum = A1[i] + A2[i]*9; |
| | | for ( i=1; i<10; i+=1 ) { |
| | | let v = parseInt( id.charAt(i) ); |
| | | if (i === 1 && isNaN(v)) { |
| | | switch(id.charAt(i)) { |
| | | case 'A': |
| | | v = 0; |
| | | break; |
| | | case 'B': |
| | | v = 1; |
| | | break; |
| | | case 'C': |
| | | v = 2; |
| | | break; |
| | | case 'D': |
| | | v = 3; |
| | | break; |
| | | default: |
| | | return false |
| | | } |
| | | } else if ( i === 1 && ([1,2,8,9].indexOf(v) === -1) ) { |
| | | return false |
| | | } |
| | | if ( i > 1 && isNaN(v) ) return false; |
| | | sum = sum + v * Mx[i]; |
| | | } |
| | | |
| | | for ( i=1; i<10; i++ ) { |
| | | const v = parseInt( id.charAt(i) ); |
| | | if ( isNaN(v) ) return false; |
| | | sum = sum + v * Mx[i]; |
| | | if ( sum % 10 != 0 ) return false; |
| | | return true; |
| | | } |
| | | |
| | | if ( sum % 10 != 0 ) return false; |
| | | return true; |
| | | } |
| | | |
| | | get isSubmitBtnDisabled() { |
| | | const { |