computeMrzCheckDigit function

int computeMrzCheckDigit(
  1. String input
)

Implementation

int computeMrzCheckDigit(String input) {
  final weights = [7, 3, 1];
  int sum = 0;
  for (int i = 0; i < input.length; i++) {
    final char = input[i];
    int value;
    if (RegExp(r'[0-9]').hasMatch(char)) {
      value = int.parse(char);
    } else if (RegExp(r'[A-Z]').hasMatch(char)) {
      value = char.codeUnitAt(0) - 55;
    } else if (char == '<') {
      value = 0;
    } else {
      value = 0;
    }
    sum += value * weights[i % 3];
  }
  return sum % 10;
}