【问题标题】:How to create salesforce validation for time using REGEX?如何使用 REGEX 为时间创建 Salesforce 验证?
【发布时间】:2013-01-08 18:13:06
【问题描述】:

我正在尝试在 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 中输入时出现错误

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

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

【问题讨论】:

    标签: regex validation salesforce


    【解决方案1】:

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

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

    这将允许像这样的时间

    09:08 下午

    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"))
    

    【讨论】:

    • 这仍然允许无效时间,例如“15:30 PM”。要解决这个问题,请使用(0?[0-9]|1[0-2]):[0-5][0-9] [A|P]M
    • @AndersJohansson 我尝试了您的公式,但 Salesforce 遇到了问题。
    猜你喜欢
    • 1970-01-01
    • 2012-07-09
    • 2012-05-30
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多