如何使用REGEX创建时间的salesforce验证?

时间:2013-01-08 18:13:06

标签: regex validation salesforce

我正在尝试在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中输入时我收到了错误

  

公式表达式无效:语法错误。找到'['。

非常感谢任何帮助。 (对不起,如果这有点长)

1 个答案:

答案 0 :(得分:2)

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

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

这将允许像

这样的时间

09:08 PM

上午12:49

下午1:32

但不允许像

这样的事情

23时42分

23:42 PM

下午1:09

一般情况下,正则表达式最好从这样简单的东西开始,然后展开它。

现在,因为你想在验证规则中使用它,你必须记住,当正则表达式匹配时你想要触发这个规则(因为那是你想要抛出一个错误,当某人输入了无效的时间格式时)。所以你的规则实际上就像

NOT(REGEX( Time__c , "[0-1]?[0-9]:[0-5][0-9] [A|P]M"))