Skip to main content

gcc_validators 0.1.0 copy "gcc_validators: ^0.1.0" to clipboard
gcc_validators: ^0.1.0 copied to clipboard

Validation and normalization for GCC identifiers: IBAN, Saudi national ID and Iqama, Emirates ID, mobile numbers and VAT numbers. Pure Dart, Arabic-digit aware.

example/main.dart

import 'package:gcc_validators/gcc_validators.dart';

void main() {
  // IBAN: accepts spaces, lower case and Arabic-Indic digits.
  final iban = Iban.validate('sa03 8000 0000 6080 1016 7519');
  print(iban.isValid); // true
  print(Iban.format(iban.value!)); // SA03 8000 0000 6080 1016 7519

  // Typed errors you can map to your own localized messages.
  final bad = Iban.validate('SA04 8000 0000 6080 1016 7519');
  print(bad.error); // IbanError.invalidChecksum

  // Saudi national ID / Iqama.
  print(SaudiNationalId.typeOf('1012345672')); // SaudiIdType.citizen

  // Mobile numbers normalized to E.164.
  final phone = GccPhone.validateMobile(
    '٠٥٠ ١٢٣ ٤٥٦٧',
    country: GccCountry.saudiArabia,
  );
  print(phone.value); // +966501234567

  // Drop-in validator for Flutter's TextFormField.validator.
  final validator = GccValidators.mobile(
    country: GccCountry.uae,
    messages: (error) => switch (error) {
      PhoneError.invalidPrefix => 'Not a UAE mobile number',
      _ => 'Enter a valid mobile number',
    },
  );
  print(validator('053 123 4567')); // Not a UAE mobile number
}
0
likes
160
points
390
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Validation and normalization for GCC identifiers: IBAN, Saudi national ID and Iqama, Emirates ID, mobile numbers and VAT numbers. Pure Dart, Arabic-digit aware.

Repository (GitHub)
View/report issues

Topics

#validation #iban #form #saudi-arabia #uae

License

MIT (license)

More

Packages that depend on gcc_validators