isDate function

String? isDate(
  1. dynamic val
)

return an error message if value does not pass the validation validation requires val: not equal null and the value must a date in this format (DD-MM-YYYY)

Implementation

String? isDate(val) {
  try {
    assert(val != null);
    final List<String> strArr =
        val.toString().trim().replaceAll(" ", "").split("-");
    final day = strArr[0].trim();
    final month = strArr[1].trim();
    final year = strArr[2].trim();

    assert(day.length == 2 && month.length == 2 && year.length == 4);
    final dVal = int.parse(day);
    final mVal = int.parse(month);

    assert(dVal != 0 && dVal <= 31);
    assert(mVal != 0 && mVal <= 12);
  } catch (e) {
    return "Date must be in this format (DD-MM-YYYY)";
  }
  return null;
}