| | |
| | | this.$router.push(`/myAppointmentList/contactedList`); |
| | | } |
| | | |
| | | 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 ]; |
| | | |
| | | 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)) { |
| | | checkIdentityId(id) { |
| | | const tab = 'ABCDEFGHJKLMNPQRSTUVXYWZIO'; |
| | | const weight = [9, 8, 7, 6, 5, 4, 3, 2, 1, 1]; |
| | | if (id.length !== 10) return false; |
| | | let i = tab.indexOf(id.charAt(0)) + 10; |
| | | if (i === 9) return false; |
| | | let sum = Math.floor((i % 100) / 10) + (i % 10) * 9; |
| | | for (i = 1; i < 10; i += 1) { |
| | | let v = parseInt(id.charAt(i), 10); |
| | | if (i === 1 && Number.isNaN(v)) { |
| | | switch (id.charAt(i)) { |
| | | case 'A': |
| | | v = 0; |
| | | break; |
| | |
| | | v = 3; |
| | | break; |
| | | default: |
| | | return false |
| | | return false; |
| | | } |
| | | } else if ( i === 1 && ([1,2,8,9].indexOf(v) === -1) ) { |
| | | 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]; |
| | | if (i > 1 && Number.isNaN(v)) return false; |
| | | sum += v * weight[i]; |
| | | } |
| | | |
| | | if ( sum % 10 != 0 ) return false; |
| | | if (sum % 10 !== 0) return false; |
| | | return true; |
| | | } |
| | | |