Files
2026-10-27 15:00:16 +01:00

35 lines
1.1 KiB
Dart

class InputValidators {
static double? number(String? value) =>
double.tryParse((value ?? '').trim().replaceAll(',', '.'));
static String? requiredText(String? value) =>
value == null || value.trim().isEmpty ? 'Bitte ausfüllen' : null;
static String? nonNegative(String? value, {bool optional = false}) {
if (optional && (value ?? '').trim().isEmpty) return null;
final parsed = number(value);
return parsed == null || !parsed.isFinite || parsed < 0
? 'Zahl ab 0 eingeben'
: null;
}
static String? positive(String? value) {
final parsed = number(value);
return parsed == null || !parsed.isFinite || parsed <= 0
? 'Zahl größer 0 eingeben'
: null;
}
static String? hours(String? value) {
final parsed = int.tryParse((value ?? '').trim());
return parsed == null || parsed < 0 ? 'Ganze Zahl ab 0 eingeben' : null;
}
static String? minutes(String? value) {
final parsed = int.tryParse((value ?? '').trim());
return parsed == null || parsed < 0 || parsed > 59
? '0 bis 59 eingeben'
: null;
}
}