2

Javascript または jquery で、指定された文字列が h:m または hh:mm 形式であるか、単に h 形式であるかを確認する方法はありますか。元:

5 //legal    
2.5 //legal
.5 //legal
2:05 //legal
:5 //NOT legal
2:61 // NOT legal

文字列を double として解析できる場合、または h:m 形式で解析できる場合は問題ありません。

これは 24 時間制ではありません。33:44 は完全に有効です。これは勤務時間の入力用です。

ありがとう

4

4 に答える 4

0

この問題は、次のようなコードで解決できると思います。

function validate(value) {
           if (!parseFloat(value)) {
              var values = value.split(':');
              if (!parseInt(values[0]) || parseInt(values[1]) >= 60) {
                 return false;
              }
           }
           else {
             var values = value.split('.');
             if (parseInt(values[1]) >= 60)
                return false;
           }
           return true;
}
于 2013-03-28T20:12:02.917 に答える
0
function test(str) {
  if (!isNaN(str)) return true;
  $parts = str.split(':');
  return !isNaN(str[0]) && !isNaN(str[1]) && (+str[1]) <= 60;
}
于 2013-03-28T20:08:20.287 に答える
0

期間が必要な場合 (h任意の値にすることができます)、次のような正規表現を使用して数値と時間の両方をテストします。

/^(?:\.\d+|\d+(?:\.\d*)?|\d+:[0-5]?\d)$/.test(str)

true訴訟やfalseその他の場合に返されます

于 2013-03-28T20:09:28.133 に答える
0

試す

/^(\d+|\d*(\.[0-5]?\d)|\d+(:[0-5]?\d)?)$/

例えば

function verify( time ) {
    return /^(\d+|\d*(\.[0-5]?\d)|\d+(:[0-5]?\d)?)$/.test( time ); 
}  

verify( '24:00' );    // true
于 2013-03-28T20:21:32.857 に答える