checksums.js 557 B

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. function mod10(number) {
  3. var sum = 0;
  4. for (var i = 0; i < number.length; i++) {
  5. var n = parseInt(number[i]);
  6. if ((i + number.length) % 2 === 0) {
  7. sum += n;
  8. } else {
  9. sum += n * 2 % 10 + Math.floor(n * 2 / 10);
  10. }
  11. }
  12. return (10 - sum % 10) % 10;
  13. }
  14. 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. }
  23. export default {
  24. mod10,
  25. mod11
  26. }