首页 > 解决方案 > 如何检查文本字段中输入的日期在 Dart/Flutter 中是否有效?

问题描述

我在 3 个文本字段中采用日期月份和年份,但 DateTime 属性或函数都没有提供验证。

我已经使用 DateTime.parse(str) 来获取日期,但是如果输入的月份字段也超过 12 个相同的天数,它会将剩余的月份添加到年份中。

bool isDate(String str) {
  try {
    DateTime.parse(str);
    return true;
  } catch (e) {
    return false;
  }
}

我希望如果有人在字符串中输入“20053050”是假的,而不是真的。但是这个函数总是返回 true !!!

在此处输入图像描述

标签: androidflutterdart

解决方案


有一个简单的方法你现在可以试试。这是tryParse方法。它只是为无效的日期格式返回 null。

if(DateTime.tryParse(timeString) != null){
  DateTime date = DateTime.parse(timeString);
}

推荐阅读