Javascript 使用前零检查时间

Javascript 使用前零检查时间,javascript,jquery,Javascript,Jquery,我正在开发应用程序。它有一个表单,其中一个字段表示时间。用户将以24小时格式输入时间。当用户输入时间如07:40时,它工作正常,但当用户输入7:00时,它不工作。所以我想要的是,当输入7:00时,我想在7之前添加0注意我已经从时间上删除了:,并将其设置为700。现在我想添加前导零,如果用户在它之前没有输入任何内容,并且如果他们在开始时输入一个数字,则保持原样。如何在javascript中实现这一点?我知道我可以使用正则表达式,但任何示例都会有所帮助 这是我的做法,但似乎不正确,因为它不工作 va

我正在开发应用程序。它有一个表单,其中一个字段表示时间。用户将以24小时格式输入时间。当用户输入时间如
07:40
时,它工作正常,但当用户输入
7:00
时,它不工作。所以我想要的是,当输入
7:00
时,我想在
7
之前添加0注意我已经从时间上删除了
,并将其设置为
700
。现在我想添加前导零,如果用户在它之前没有输入任何内容,并且如果他们在开始时输入一个数字,则保持原样。如何在javascript中实现这一点?我知道我可以使用正则表达式,但任何示例都会有所帮助

这是我的做法,但似乎不正确,因为它不工作

var regex = /^\b(0(?!\b))+/g;

if (!regex.test(time)) {
    time = '0' + time;
}

最简单的方法是从已加前缀的字符串中分割最后n个数字。如果要确保字符串始终为4位数字,可以执行以下操作:

time = ('0' + time).slice(-4);
假设您知道时间总是至少是三位数。当然,你可以写:

time = ('0000' + time).slice(-4);
但在您的特定用例中,这可能没有多大意义


此代码可以在没有任何事先检查的情况下执行,而不仅仅是在表达式匹配的情况下有条件地执行。

最简单的方法是从已加前缀的字符串中分割最后n个数字。如果要确保字符串始终为4位数字,可以执行以下操作:

time = ('0' + time).slice(-4);
假设您知道时间总是至少是三位数。当然,你可以写:

time = ('0000' + time).slice(-4);
但在您的特定用例中,这可能没有多大意义


此代码可以在没有任何事先检查的情况下执行,而不仅仅是在表达式匹配的情况下有条件地执行。

您可以在删除冒号之前执行此操作,如下所示:

time = time.replace(/^\d{1}:/, '0$&');

您可以在删除冒号之前执行以下操作:

time = time.replace(/^\d{1}:/, '0$&');

这应该很好:

var time = '7:50';
time = time.replace(/\b\d\b/g, '0$&');

在移除冒号之前。

这应该很好:

var time = '7:50';
time = time.replace(/\b\d\b/g, '0$&');

在删除冒号之前。

如果您对regex表达式非常具体,则无需对0进行预加

if( /^[0-9]:[0-9]{2}$/.test( time ) ) {
    time = "0" + time;
}

如果您对正则表达式非常具体,则无需对0进行预加

if( /^[0-9]:[0-9]{2}$/.test( time ) ) {
    time = "0" + time;
}

准确地说,这也比正则表达式(在本例中)需要更少的内存。准确地说,这也比正则表达式(在本例中)需要更少的内存。嗨,你可以这样使用。。。var t='700';如果(t.length==3)t='0'+t;警报(t);嗨,你可以这样用。。。var t='700';如果(t.length==3)t='0'+t;警报(t);