validateNumber static method

String? validateNumber(
  1. String? value, {
  2. double? min,
  3. double? max,
  4. bool allowDecimals = true,
})

Validate numeric input

Implementation

static String? validateNumber(
  String? value, {
  double? min,
  double? max,
  bool allowDecimals = true,
}) {
  if (value == null || value.isEmpty) {
    return 'This field is required.';
  }

  final numberRegExp =
      allowDecimals ? RegExp(r'^-?\d*\.?\d+$') : RegExp(r'^-?\d+$');

  if (!numberRegExp.hasMatch(value)) {
    return 'Please enter a valid number.';
  }

  final number = double.tryParse(value);
  if (number == null) {
    return 'Invalid number format.';
  }

  if (min != null && number < min) {
    return 'Value must be at least $min.';
  }

  if (max != null && number > max) {
    return 'Value must not exceed $max.';
  }

  return null;
}