rsa_id_number

A Dart package for validating and generating South African ID numbers.

Features

  • Validation: Validate South African ID numbers based on the specified format.
  • Generation: Generate random South African ID numbers.
  • Parser: Parse string(ID numbers) to Object

Installation

Add the following line to your pubspec.yaml file:

dependencies:
  rsa_id_number:

Then run:

$ pub get

or

$ flutter pub get

Usage

Validation

import 'package:rsa_id_number/rsa_id_validator.dart';

void main() {
  String idToValidate = '9202204720082';
  bool isValid = RsaIdValidator.isValid(idToValidate);
  print('Is valid ID: $isValid');
}

Generation

import 'package:rsa_id_number/rsa_id_generator.dart';

void main() {
  /// generate a random/valid SA id number
  final rsaIdNumber = RsaIdGenerator.generate();
  log('Generated ID: $rsaIdNumber');

  /// generate with options
  final rsaIdNumber2 = RsaIdGenerator.generate(
    gender: Gender.FEMALE,
    citizenship: Citizenship.CITIZEN_BORN,
    maxDate: DateTime(1969),
    minDate: DateTime.now(),
  );
  log('Generated ID: $rsaIdNumber2');
}

Parser

import 'package:rsa_id_number/rsa_id_generator.dart';

void main() {
  String idNumber = "8801235121088";
  RsaIdParser parser = RsaIdParser.parse(idNumber);

  print('Date of Birth: ${parser.dateOfBirth}');
  print('Gender: ${parser.sex}');
  print('Citizenship: ${parser.citizenship}');
  print('Race: ${parser.race}');
  print('Is Valid: ${parser.isValid}');
}

Contributing

Feel free to contribute to this project by submitting issues and pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.