dynamicValidate static method

dynamic dynamicValidate({
  1. required dynamic text,
  2. required dynamic fieldname,
  3. required int minLength,
  4. required int maxLength,
  5. required bool mandatory,
  6. required dynamic regex,
  7. required bool fromdropdown,
  8. required bool fromTextfield,
})

Implementation

static dynamic dynamicValidate(
    {required dynamic text,
    required dynamic fieldname,
    required int minLength,
    required int maxLength,
    required bool mandatory,
    required dynamic regex,
    required bool fromdropdown,
    required bool fromTextfield}) {
  fieldname = fieldname?.toString().trim() ?? '';
  final trimmedText = text?.toString().trim();

  bool initCondition = trimmedText != null &&
      trimmedText.isNotEmpty &&
      (fromdropdown
          ? text != ConstantName.dropDownSelect
              ? true
              : false
          : true);

  if (mandatory) {
    if (initCondition) {
      if (fromTextfield &&
          ((minLength != 0 && trimmedText.length < minLength) ||
              (maxLength != 0 && trimmedText.length > maxLength))) {
        return "Please enter a valid $fieldname";
      }

      if (RegExp(regex).hasMatch(trimmedText)) {
        return null;
      } else {
        return "Please enter a valid $fieldname";
      }
    }
    return "Please enter the $fieldname";
  } else if (initCondition) {
    if (fromTextfield &&
        ((minLength != 0 && trimmedText.length < minLength) ||
            (maxLength != 0 && trimmedText.length > maxLength))) {
      return "Please enter a valid $fieldname";
    }

    if (RegExp(regex).hasMatch(trimmedText)) {
      return null;
    } else {
      return "Please enter a valid $fieldname";
    }
  }
}