checksums.js 523 B

1234567891011121314151617181920212223
  1. export function mod10(number){
  2. var sum = 0;
  3. for(var i = 0; i < number.length; i++){
  4. var n = parseInt(number[i]);
  5. if((i + number.length) % 2 === 0){
  6. sum += n;
  7. }
  8. else{
  9. sum += (n * 2) % 10 + Math.floor((n * 2) / 10);
  10. }
  11. }
  12. return (10 - (sum % 10)) % 10;
  13. }
  14. export function mod11(number){
  15. var sum = 0;
  16. var weights = [2, 3, 4, 5, 6, 7];
  17. for(var i = 0; i < number.length; i++){
  18. var n = parseInt(number[number.length - 1 - i]);
  19. sum += weights[i % weights.length] * n;
  20. }
  21. return (11 - (sum % 11)) % 11;
  22. }