isDEANumberOfUS property

bool get isDEANumberOfUS

Returns true if string is a valid US Drug Enforcement Agency

Implementation

bool get isDEANumberOfUS {
  if (this == null) {
    return false;
  }
  final pattern = RegExp(r'^[A-Z]{2}\d{7}$');
  if (!pattern.hasMatch(this!)) return false;

  // Extract digits
  final digits = this!.substring(2).split('').map(int.parse).toList();

  // Check digit calculation:
  // 1. Add digits 1, 3, 5
  int sum135 = digits[0] + digits[2] + digits[4];
  // 2. Add digits 2, 4, 6 and multiply by 2
  int sum246x2 = (digits[1] + digits[3] + digits[5]) * 2;
  // 3. Total and check if last digit matches
  int expectedCheck = ((sum135 + sum246x2) % 10);

  return digits[6] == expectedCheck;
}