0

Salesforce で一種のパンチカード/スケジューリング システムを構築しようとしています。単一の入力画面を使用して複数のレコードを作成するための「視覚的なワークフロー」を取得するところまで来ました。

ここで、時刻を単一の形式(HH:MM am/pm)で入力することを強制する REGEX 検証ルールを追加して、ばかの証明にする必要があります。

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"

これにより、次のような時間が可能になります

午後 9 時 8 分

午前12時49分

午後1時32分

しかし、次のようなことは許可しません

23:42

午後 23 時 42 分

午後1時9分

一般に、正規表現では、このような単純なものから始めて、それを拡張するのが最善です。

ここで、これを検証ルールで使用したいので、正規表現が一致しない場合にこのルールを起動する必要があることを覚えておく必要があります(エラーをスローしたい場合、誰かが無効な時刻形式を入力した場合) )。したがって、ルールは実際には次のようになります

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