35 lines
1.1 KiB
Dart
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;
|
|
}
|
|
}
|