2

次の形式で値を取得できるストップウォッチ変数があります。 HH:MM:SSほとんどの場合。'HH'24 時間を超える可能性があります - 基本的に任意の有効な番号です。

私はこの正規表現が得意ではありませんが、ほとんどの部分に適したものを書くことができましたが、時間が1桁であるかどうかを検証できませんでした. 元。以下の正規表現は time1:10:09を渡しますが、無効です。有効時間部分とさせていただきます01

//var stopWatchTime = '02:10:09'; //Valid
//var stopWatchTime = '00:10:09'; //Valid
//var stopWatchTime = '1234:10:09'; //Valid
//var stopWatchTime = ':10:09'; //Invalid
//var stopWatchTime = 'ax:10:09'; //Invalid
var stopWatchTime = '1:10:09'; //Invalid, should be 01:10:09. 

if(!stopWatchTime .match(/^\d+:\d{2}:\d{2}$/)){
    alert('invalid time- ' + stopWatchTime);
}
else{
    alert('valid time - ' + stopWatchTime);
}

任意の数字をチェックする必要があるが、時間部分に 2 桁以上ある必要があると言うには、正規表現で何を変更する必要がありますか?

4

5 に答える 5

15
/^\d{2,}:\d{2}:\d{2}$/

+ を {2,} に変更して、2 つ以上の文字を使用できるようにします

一致するものと一致しないものを見たい場合は、ここで遊ぶことができますhttp://regexr.com?31fu4

編集:また、時間/分の部分で最大59まで一致させたい場合も使用します

^\d{2,}:(?:[0-5]\d):(?:[0-5]\d)$
于 2012-07-09T18:23:47.343 に答える
2

http://gskinner.com/RegExr/?31fug ^\d{2,}(:[0-5]\d){2}$

于 2012-07-09T18:58:28.543 に答える
1

別の解決策は次のとおりです。

 $('#input-horaIni, #input-horaFin').blur(function () {
        var validTime = $(this).val().match(/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/);
        if (!validTime) {
            $(this).val('').focus().css('background', '#fdd');
        } else {
            $(this).css('background', 'transparent');
        }
    });

これは私にとってはうまくいきます...ページに基づく: http://www.mkyong.com/regular-expressions

于 2014-09-09T20:02:50.700 に答える
0

これが、この検証に対する私の答えです。

function checkTimes(val){
val=new String(val);
if(val.length!=5){
    return false;
}
else{
    var hour=val.substring(0,2);
    var min=val.substring(3,5);
   if(val.substring(2,3)!==":") return false;
    if(isNaN(hour)) return false;
    if(isNaN(min)) return false;
    if(parseInt(hour)<24){
        if(parseInt(min)<60){
            return true;
        }
        else return false;

    }else return false;
}
}

私の答えを8文字に拡張できます...

于 2015-01-20T17:22:10.047 に答える