You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Apps文本输入框的日期时间格式验证方案咨询

验证Power Apps文本输入框的DD/MM/YYYY HH:MM AM/PM格式

1. 用正则表达式做格式校验

Power Apps的IsMatch函数可以配合正则表达式,精准匹配你需要的日期时间格式。针对DD/MM/YYYY HH:MM AM/PM的正则表达式为:
^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(\d{4}) (0[1-9]|1[012]):([0-5][0-9]) (AM|PM)$

这个正则的规则:

  • 日:01-31(兼容1位/2位日的输入)
  • 月:01-12(限制有效月份范围)
  • 年:4位数字
  • 时间:12小时制(01-12),分钟00-59
  • 必须包含大写的AM/PM(如果要支持小写,可修改为(am|pm|AM|PM))

2. 字段高亮提示错误

假设文本输入框控件名为TextInput1,设置其BorderColor属性,格式错误时自动变红:

If(
    IsMatch(TextInput1.Text, "^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(\d{4}) (0[1-9]|1[012]):([0-5][0-9]) (AM|PM)$"),
    Color.Default,
    Color.Red
)

也可以搭配Fill属性设置背景色高亮,比如错误时用Color.LightCoral替换默认背景色。

3. 保存前校验+弹出错误提示

在保存按钮的OnSelect事件中,先执行格式校验,不通过则弹出错误通知,通过后再执行保存逻辑:

If(
    !IsMatch(TextInput1.Text, "^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(\d{4}) (0[1-9]|1[012]):([0-5][0-9]) (AM|PM)$"),
    Notify("请输入正确的日期时间格式,示例:29/12/2022 10:30 AM", NotificationType.Error),
    // 替换为你的实际保存逻辑,比如Patch到数据源
    Patch(YourDataSource, Defaults(YourDataSource), {YourDateTimeColumn: TextInput1.Text})
)

4. 进阶:同时校验日期合法性

正则只能保证格式正确,无法识别无效日期(如2月30日、4月31日)。如果需要同时验证日期有效性,可结合DateValue函数:
将校验条件修改为:

IsMatch(TextInput1.Text, "^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(\d{4}) (0[1-9]|1[012]):([0-5][0-9]) (AM|PM)$") && !IsError(DateValue(Left(TextInput1.Text, 10), "dd/mm/yyyy"))

DateValue(Left(TextInput1.Text, 10), "dd/mm/yyyy")会尝试将日期部分转换为合法日期值,无效日期会返回错误,用!IsError判断合法性。

内容的提问来源于stack exchange,提问作者p nikhith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 07:20:36