0

曜日と 24 時間形式の配列を検証するための正しい正規表現 (Java および JavaScript で使用するため) を見つけようとしています。時間形式はわかりましたが、完全な解決策を見つけるのに苦労しています。

正規表現は、コンマで区切られた次の 1 つ以上を含むパターンを検証する必要があります。

{2 文字の日} HH:MM-HH:MM

有効な文字列の 3 つの例は次のとおりです。

M 5:30-7:00
M 5:30-7:00, T 5:30-7:00, W 18:00-19:30
F 12:00-14:30, Sa 6:45-8:15, Su 6:45-8:15
4

6 に答える 6

1

これにより、24 時間制が検証されます。

/^((M|T|W|Th|Fr|Sa|Su) ([01]?[0-9]|2[0-3]):[0-5][0-9]-([01]?[0-9]|2[0-3]):[0-5][0-9](, )?)+$/

タイムビットのクレジットは次のmkyongとおりです: http://www.mkyong.com/regular-expressions/how-to-validate-time-in-24-hours-format-with-regular-expression/

于 2013-03-29T16:00:52.960 に答える
0

これを試すことができます:([MTWFS][ouehra]?) ([0-9]|[1-2][0-9]):([0-6][0-9])-([0-9]|[1-2][0-9]):([0-6][0-9])

于 2013-03-29T16:00:58.083 に答える
0

これにより、配列内のすべてのセットがキャプチャされます。短い曜日リストの T は議論の余地があります (火曜日か木曜日か?)。

^((?:[MTWFS]|Tu|Th|Sa|Su)\s(?:[0-9]{1,2}:[0-9]{2})-(?:[0-9]{1,2}:[0-9]{2})(?:,\s)?)+$

(?:) は非キャプチャ グループであるため、実際の一致は次のようになります (たとえば):

  • 中 5:30~7:00
  • 受付 5:30~7:00
  • 和 18:00~19:30

ただし、行全体が検証されます。

一部の正規表現パーサーは以前の方法では機能しない可能性があるため、行境界と明示的な時間と時間の一致に ^ と $ を追加しました。

于 2013-03-29T15:59:10.983 に答える
0

私はこれで行きます:

(((M|T(u|h)|W|F|S(a|u)) ((1*\d)|(2[0-3])):[1-5]\d-((1*\d)|(2[0-3])):[1-5]\d(, )?)+
于 2013-03-29T16:01:07.747 に答える
0

あなたはこれを試すことができます

[A-Za-z]{1,2}[ ]\d+:\d+-\d+:\d+
于 2013-03-29T15:50:54.797 に答える
0

これでうまくいくはずです:

^(M|Tu|W|Th|F|Sa|Su) \d{1,2}:\d{2}-\d{1,2}:\d{2}(, (M|Tu|W|Th|F|Sa|Su) \d{1,2}:\d{2}-\d{1,2}:\d{2})*$

T上記の例ではあいまいであることに注意してください。私の正規表現に示されているように、Tuandを強制したいかもしれません。Th

于 2013-03-29T15:57:42.490 に答える