1

HH:MM (例: 12:23) に一致する正規表現があり、それは次のとおりです。

function IsValidTime(timeString)
{
    var pattern = /^\d?\d:\d{2}$/;
    if (!timeString.match(pattern))
        return false;
}

この行を変更するにはどうすればよいですか:

var pattern = /^\d?\d:\d{2}$/;

次のように秒でフォーマットされた文字列をチェックするには: HH:MM:SS例: 12:23:05

4

4 に答える 4

23
/^(?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$/

24 時間制の場合、先行ゼロは必須です。

/^(?:2[0-3]|[01]?[0-9]):[0-5][0-9]:[0-5][0-9]$/

24 時間制の場合、先行ゼロはオプションです。

/^(?:1[0-2]|0[0-9]):[0-5][0-9]:[0-5][0-9]$/

12 時間制の場合、先行ゼロが必須です。

/^(?:1[0-2]|0?[0-9]):[0-5][0-9]:[0-5][0-9]$/

12 時間制の場合、先行ゼロはオプションです。

于 2013-02-15T10:33:52.230 に答える
10

次のような単純なものが機能するはずです。

/([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/g

正規表現の説明:

  • ([01][0-9]|2[0-3])
    • 以下のコレクション:
    • [01][0-9]文字「0」または「1」の後に 0 ~ 9 の任意の数字が続く
    • |-または
    • 2[0-3]文字「2」の後に 0 ~ 3 の数字が続く
  • :リテラルコロン
  • [0-5][0-9]- 0 から 5 までの任意の数字の後に 0 から 9 までの任意の数字が続く
  • :リテラルコロン
  • [0-5][0-9]- 0 から 5 までの任意の数字の後に 0 から 9 までの任意の数字が続く

デモ:

正規表現101

于 2013-02-15T10:34:03.757 に答える
0

を検出するための正規表現に基づいて99:99:99、次の正規表現で十分です。

/^\d?\d:\d{2}:\d{2}$/

またはもう少し洗練された

/^\d?\d(?::\d{2}){2}$/

しかし、はるかに優れています(範囲に正しく一致するため):

/^(?:[01]?\d|2[0-3]):[0-5]\d:[0-5]\d$/

これは関数名に準拠しますIsValidTime...

于 2013-02-15T10:44:19.297 に答える