带条件的JavaScript转换
我有这个代码来将输入时间转换为秒带条件的JavaScript转换,javascript,Javascript,我有这个代码来将输入时间转换为秒 $(function() { $('form').on('keyup', '#quizTime', function(e){ var hms = $('#quizTime').val(); var a = hms.split(':'); var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); console.log(seconds)
$(function() {
$('form').on('keyup', '#quizTime', function(e){
var hms = $('#quizTime').val();
var a = hms.split(':');
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
console.log(seconds);
});
});
此代码的问题是,它需要输入00:05:30
才能工作,如果我只输入小步舞曲,则不会接受,而05:30
将返回NAN
我试图找到的是一个解决方案,它既接受输入条件hh:mm:ss
,也接受mm:ss
如何更改此代码以实现该目标?如果不存在,则将小时数默认为
0
:
$(function() {
$('form').on('keyup', '#quizTime', function(e){
var hms = $('#quizTime').val();
var a = hms.split(':');
if(a.length !== 3) {
a.unshift(0)
}
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
console.log(seconds);
});
});
检查
a
的长度
$(function() {
$('form').on('keyup', '#quizTime', function(e){
var hms = $('#quizTime').val();
var a = hms.split(':');
var seconds;
if (a.length == 3) { // hh:mm:ss
seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
} else if (a.length == 2) { // mm:ss
seconds = (+a[0]) * 60 + (+a[1]);
} else if (a.length == 1) { // ss
seconds = +a[0];
} else {
alert("That's not a valid time: " + hms);
}
console.log(seconds);
});
});
如果,则使用
添加更多条件。