Expresión Regular para validar un numero y/o precio en Flutter de un ítem ( producto, servicio, lo que sea) con dos decimales, y que no le permita al usuario escribir erróneo el numero.
FilteringTextInputFormatter.allow(RegExp(r'^(\d+)?\.?\d{0,2}'))
Librería dependencia a nivel de import:
import ‘package:flutter/services.dart’;
Ejemplo de Uso en un TextFormField
TextFormField(
initialValue: producto.price.toString(),
keyboardType: TextInputType.number,
decoration: InputDecorations.authInputDecoration(hintText: 'Precio del Producto', labelText: 'Precio:'),
inputFormatters: [
//
// Exprecion regular para validar un numero don un decimal.
FilteringTextInputFormatter.allow(RegExp(r'^(\d+)?\.?\d{0,2}'))
//
//
],
onChanged: ((value) {
if (double.tryParse(value) == null) {
producto.price = 0.00;
} else {
producto.price = double.parse(value);
}
}),
validator: ((value) {
if (value == null) {
return 'El Precio del Producto es Requerido';
}
}),
),