3

24 時間形式の時刻を検証したいのですが、時刻は次の形式です。

HH:MM:SS

どうすればそれを手に入れることができますか。私を助けてください。私のHTMlコードは

    <asp:TextBox Width="120px" MaxLength="20" ID="txtEndTime" runat="server"></asp:TextBox>
                                <ajaxctrl:maskededitextender id="metxtEndTime" runat="server" targetcontrolid="txtEndTime"
                                    mask="99:99:99" messagevalidatortip="true" masktype="Number" inputdirection="LeftToRight"
                                    clearmaskonlostfocus="false" acceptnegative="None" errortooltipenabled="True" />
4

5 に答える 5

9

フォーマットのみを検証するには、これを使用できます。

var valid = (timeStr.search(/^\d{2}:\d{2}:\d{2}$/) != -1);

値も検証しようとしている場合は、これを試すことができます。

var valid = (timeStr.search(/^\d{2}:\d{2}:\d{2}$/) != -1) &&
            (timeStr.substr(0,2) >= 0 && timeStr.substr(0,2) <= 24) &&
            (timeStr.substr(3,2) >= 0 && timeStr.substr(3,2) <= 59) &&
            (timeStr.substr(6,2) >= 0 && timeStr.substr(6,2) <= 59);
于 2012-08-13T05:51:47.963 に答える
5

別のアプローチですが、追加の JavaScript ライブラリを使用します。

var valid = moment(timeStr, "HH:mm:ss", true).isValid();

プロジェクトで既にmoment.jsを使用している場合、マイナス面はないと思います。

于 2016-11-02T21:15:12.267 に答える
3

このタスクに適したパターンは次のとおりです。

/^(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)$/.test(document.getElementById("metxtEndTime").value);

この正規表現は、input 要素の HTML5 属性で使用できますが、patternまだ試していません。

于 2012-08-13T05:58:04.857 に答える
2

形式と値を検証するには:

// Allows times like 24:05:00
function validateTime(s) {
  var t = s.split(':');

  return /^\d\d:\d\d:\d\d$/.test(s) &&
         t[0] >= 0 && t[0] < 25 &&
         t[1] >= 0 && t[1] < 60 &&
         t[2] >= 0 && t[2] < 60;
}

真夜中に 24:00:00 のような値を許可し、真夜中の 15 分として 24:15:00 と言うかどうかによって異なります。

于 2012-08-13T06:02:43.847 に答える
0

このアプローチは簡単で、24:01 を無効として説明します。「id」は php コードの入力ステートメントの ID であるため、コロン (:) を挿入して時刻に書き戻すことができます。

function checkTime(str,id){
    if (str.length == 0) return true;
    if (str.length < 4)  return false;
    var x = str.indexOf(":");
    if (x < 0){
        str = str.substr(0,2)+":"+str.substr(2,2);
        document.getElementById(id).value = str;
        document.getElementById(id).focus();
        return true;
     }  
    if (
        (str.substr(0,2) >= 0 ) && 
        (str.substr(0,2) <= 24) &&
        (str.substr(3,2) >= 0 ) && 
        (str.substr(3,2) <= 59) &&
        (str.substr(0,2) < 24 || (str.substr(0,2) == 24 && str.substr(3,2) == 0))
        )
        return true;
    return false;
}
于 2015-12-08T13:01:51.950 に答える