Power Apps适配荷兰数字格式的两位小数校验问题咨询
Power Apps 英荷双区域数字格式两位小数校验修正方案
原有实现问题
- 正则未对小数分隔符做转义:原规则里的
.属于正则通配符,可匹配任意单字符,本身存在误匹配风险 - 未覆盖荷兰区域格式:仅支持点号作为小数分隔符,无法识别荷兰地区用逗号做分隔符的
233,25类格式 - 缺少首尾锚定:原规则没有限定全串匹配,输入内容夹杂非数字字符时可能出现误判
- 此前OR逻辑失效通常是分隔符匹配范围、转义处理不到位导致的
修正后实现
直接替换原有校验逻辑即可,修正后的正则同时支持点、逗号两种小数分隔符,且限制最多两位小数,全串匹配避免误判:
If( // 校验规则:整数部分必填,小数部分可选、支持.或,分隔、最多2位 IsMatch(TextInput.Text, "^\d+([.,]\d{0,2})?$"), Submit(Form1), Notify("格式错误,请输入最多两位小数的有效数字", NotificationType.Warning) )
正则规则说明
^、$:首尾锚定符,确保输入的整段内容完全匹配规则,避免abc123.45这类夹杂其他字符的内容通过校验\d+:匹配1位及以上的整数部分([.,]\d{0,2})?:小数部分为可选组,组内仅允许点号或逗号作为小数分隔符,分隔符后最多支持2位小数- 不需要额外写OR分支,通过字符集
[.,]即可同时覆盖两种分隔符场景,逻辑更简洁不会出现分支冲突
内容的提问来源于stack exchange,提问作者James Khan
相关产品推荐
相关产品推荐

