0

我正在尝试在 Salesforce 中构建一种打孔卡/调度系统。我已经获得了使用单个输入屏幕创建多个记录的“可视化工作流程”。

我现在需要通过添加 REGEX 验证规则来强制以单一格式(HH:MM am/pm)输入时间来证明它是白痴。

我为 SLQ 找到了这段 REGEX

((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))

(我删除了开头的 ^ 和结尾的 $)

但是在 Salseforce 中输入它时出现错误

公式表达式无效:语法错误。成立 '['。

任何帮助将不胜感激。(对不起,如果这有点长)

4

1 回答 1

2

那里发布的正则表达式旨在处理许多不同的时间格式。看起来你的目标是不那么灵活,所以也许对你来说更好的正则表达式会更简单,比如

[0-1]?[0-9]:[0-5][0-9] [A|P]M"

这将允许像

09:08 PM

上午 12 点 49 分

下午 1 点 32 分

但会不允许这样的事情

23:42

下午 23:42

下午 1 点 09 分

一般来说,使用正则表达式,最好从像这样简单的东西开始,然后对其进行扩展。

现在,因为您想在验证规则中使用它,所以您必须记住,当正则表达式匹配时,您希望此规则触发(因为那是您想要抛出错误的时候,当有人输入了无效的时间格式时)。所以你的规则实际上看起来像

NOT(REGEX( Time__c , "[0-1]?[0-9]:[0-5][0-9] [A|P]M"))
于 2013-01-08T21:19:27.297 回答