2013-01-08 20 views
0

我正在尝试在Salesforce中构建一种打卡/调度系统。我已经获得了一个“视觉工作流程”,可以使用单个输入屏幕创建多个记录。如何使用REGEX为时间创建salesforce验证?

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

我发现了这片正则表达式为SLQ

((([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进入时,我得到了一个错误

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

任何帮助将不胜感激。 (对不起,如果这跑了一点点)

回答

2

张贴在那里的正则表达式旨在处理许多不同的时间格式。好像你的目标是要有点不太灵活,所以也许你一个更好的正则表达式会像

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

下午9时08

12更简单的东西这将使倍:49 AM

下午1时32分

,但会禁止之类的东西

23:42

23:42 PM

13:09

一般用正则表达式,最好先从一些简单的像这一点,然后在其上展开。现在

,因为你想在验证规则中使用这个,你要记住,你希望在正则表达式比赛(因为这是当你想抛出一个错误此规则,以火,当有人输入了无效的时间格式)。所以你的规则实际上看起来像

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

这仍然会允许像“15:30 PM”这样的无效时间。为了解决这个问题,使用'(0?[0-9] | 1 [0-2]):[0-5] [0-9] [A | P] M'。 –

+0

@AndersJohansson我尝试了你的公式,并且Salesforce遇到了麻烦。 – shachna