verifyNationalId static method
Validates Iranian national ID @param id The national ID to validate @returns bool True if valid Example: PersianTools.verifyNationalId("1234567890") => false
Implementation
static bool verifyNationalId(String id) {
if (!RegExp(r"^\d{10}$").hasMatch(id)) return false;
final String paddedId = "0000$id".substring(id.length);
if (int.parse(paddedId.substring(3, 9)) == 0) return false;
final int lastDigit = int.parse(paddedId[9]);
final int sum = List<int>.generate(9, (int i) => int.parse(paddedId[i]) * (10 - i)).reduce((int a, int b) => a + b) % 11;
return (sum < 2 && lastDigit == sum) || (sum >= 2 && lastDigit == 11 - sum);
}