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
相关产品推荐
相关产品推荐

