dart_rut_validator 1.0.0

dart_rut_validator #

Librería acotada (conjunto de herramientas) de flutter para la manipulación, formato y validación de Rol Único Tributario, o RUT chileno.

El método de validación es el algoritmo oficial publicado por el registro civil de Chile.

Utilidades #

Formato Automático #

Formato Manual #

Validación #

Ejemplos de implementación #

*Formato automático #

Para aplicar formato automático es necesario hacer uso de la clase de flutter ´TextEditingController´ para manejar los cambios del texto del campo RUT cada vez que el usuario ingrese una nueva letra o número.

import 'package:dart_rut_validator/dart_rut_validator'

TextEditingController _rutController = TextEditingController();

@override
void initState(){
  _rutController.clear();
  super.initState();
}

//Método para aplicar formato de manera 
//automática: 
void onChangedApplyFormat(String text){
    RUTValidator.formatFromTextController(_rutController);
}

@override
Widget build(BuildContext context){
  return Scaffold(
  //... Código de tu app

	 //Es importante especificar:
	 //   *El controlador del texto que
	 //    en este caso es _rutController.
	 //    De esta manera se aplicará el 
	 //    formato cada vez que el usuario
	 //   ingrese un nuevo número o letra.
	 //
 	 //   *El método onChanged con la 
	 //    función `formatFromTextController`
	 //    de rut_validator en su interior.
	 TexFormField(
	   controller:_rutController,
	   onChanged: onChangedApplyFormat
	 )
  );
}

Formato manual #

Si lo que deseas es permitir ingresar cualquier número y letra para luego aplicar el formato de RUT mediante una acción específica/personalizada:

import 'package:dart_rut_validator/dart_rut_validator'

String _rutText = '157379704';

_rutText = RUTValidator.formatFromText(_rutText);

print(_rutText); //15.737.970-4

La siguiente implementación aplica el formato sólo cuando acciona el boton de envío del formulario:

import 'package:dart_rut_validator/dart_rut_validator'

TextEditingController _rutController = TextEditingController();

@override
void initState(){
  //...
  _rutController.clear();
  super.initState();
}

//Método para aplicar formato de manera 
//automática: 
//void onSubmit(){
RUTValidator.formatFromText(_rutController.text);
}

@override
Widget build(BuildContext context){
  return Scaffold(
  //... Código de tu app
  
	 //Es importante especificar
	 //el controlador del texto que
	 //en este caso es _rutController.
	 //de esta manera se aplicará el 
	 //formato cada vez que el usuario
	 //ingrese un nuevo número o letra.
	 TexFormField(
	   controller:_rutController,
	   onChanged: onChangedApplyFormat
	 ),
	 
	 FlatButton(
	   onPressed: onSubmit
	   child: Text('Enviar')
	 )
	
  );
}

Validación #

Para aplicar validación dentro de un formulario de flutter simplemente debes especificar el método RUTValidator().validatoren el parámetro validator del widget TextFormField o relacionado como se muestra a continuación.

	 TexFormField(
	   controller: controller,
	   onChanged: onChanged,
     validator: RUTValidator().validator
	 ),
   

La validación se aplicará cuando se aplique la acción validate del formulario

  _formKey.currentState.validate()

Puedes personalizar el mensaje de error para la validación:

	 TexFormField(
	   controller: controller,
	   onChanged: onChanged,
     validator: RUTValidator(validationErrorText: 'Ingrese RUT válido').validator
	 ),

Notas #

Nota1: El validador verifica la estructura y formato del RUT de entrada pero no si este pertenece a una persona natural o empresa. Para esto es necesario contar con una API complementaria.

Nota2: El validador toma en cuenta el dígito verificador K y 0 como iguales, (por ejemplo 10.841.332-K es igual de válido que 10.841.332-0).

Nota 3: El validador tomará como no válidos números de RUT inferiores a 1.000.000, por ejemplo el RUT 0.891.345-2 será tomado como no válido, mientras que 1.001.245-7 será tomado en cuenta.

[1.0.0] - Pub.dev Official Release.

  • Three use case implementation examples in README.
  • Core functionalities and documentation.
  • A complete implementation example.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  dart_rut_validator: ^1.0.0

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:dart_rut_validator/dart_rut_validator.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
61
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
81
Learn more about scoring.

We analyzed this package on Feb 19, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.5
  • Flutter: 1.12.13+hotfix.7

Maintenance suggestions

Maintain an example.

None of the files in the package's example/ directory matches known example patterns.

Common filename patterns include main.dart, example.dart, and dart_rut_validator.dart. Packages with multiple examples should provide example/README.md.

For more information see the pub package layout conventions.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test