有没有更好的方法使用 jQuery 将 html 文本框字符串格式更新为 HH:MM:SS
Is there a better way to update html text box string format to HH:MM:SS using jQuery
好的,在浏览了几个站点之后...我确信有更好的方法可以得到我想要的结果。用户在 HTML 表单的文本框中输入数据,我希望格式从 152000 (HHMMSS) 更改为 15:20:00 (HH:MM:SS)
我能够像下面的 jQuery 这样的科学怪人,它确实有效,但我确信有更好的方法可以达到同样的效果。我知道我可以在提交后处理数据,但更愿意使用 jQuery 在他们键入时更新它。根据我的阅读,我可以使用某种类型的时间格式,但一切都集中在时间作为日期,我只需要它是一个字符串,在每两位数字后添加一个冒号并将长度限制为 8。有什么想法吗?
$('#amount').keypress(function() {
// limits the charachters allowed
var regex = new RegExp("^[0-9:]");
var key = String.fromCharCode(event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
//adds a colon after 2 digits typed
if(this.value.length == 2){
this.value = this.value+':';
}
//adds a colon after 5 character
if(this.value.length == 5){
this.value = this.value+':';
}
//limit to 8 total characters
if(this.value.length > 7) {
return false;
}
});
$('#amount').keypress(function() {
let $input = $(this);
let value = $input.val();
let update = value.replace(/(\d{2})(\d{2})(\d{2})/, '::');
// 120000 --> 12:00:00
$input.val(update)
})
好的,在浏览了几个站点之后...我确信有更好的方法可以得到我想要的结果。用户在 HTML 表单的文本框中输入数据,我希望格式从 152000 (HHMMSS) 更改为 15:20:00 (HH:MM:SS)
我能够像下面的 jQuery 这样的科学怪人,它确实有效,但我确信有更好的方法可以达到同样的效果。我知道我可以在提交后处理数据,但更愿意使用 jQuery 在他们键入时更新它。根据我的阅读,我可以使用某种类型的时间格式,但一切都集中在时间作为日期,我只需要它是一个字符串,在每两位数字后添加一个冒号并将长度限制为 8。有什么想法吗?
$('#amount').keypress(function() {
// limits the charachters allowed
var regex = new RegExp("^[0-9:]");
var key = String.fromCharCode(event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
//adds a colon after 2 digits typed
if(this.value.length == 2){
this.value = this.value+':';
}
//adds a colon after 5 character
if(this.value.length == 5){
this.value = this.value+':';
}
//limit to 8 total characters
if(this.value.length > 7) {
return false;
}
});
$('#amount').keypress(function() {
let $input = $(this);
let value = $input.val();
let update = value.replace(/(\d{2})(\d{2})(\d{2})/, '::');
// 120000 --> 12:00:00
$input.val(update)
})