我正在尝试创建一个带有正则表达式的javascript函数,以验证和格式化24小时的时间,接受不带分号的时间,并删除空格。
例子:
如果用户键入"0100"" 100""100 ",它将被接受,但格式为"01:00"如果用户键入"01:00",它将被接受,而无需格式化。

谢谢。

最佳答案

function formatTime(time) {
    var result = false, m;
    var re = /^\s*([01]?\d|2[0-3]):?([0-5]\d)\s*$/;
    if ((m = time.match(re))) {
        result = (m[1].length === 2 ? "" : "0") + m[1] + ":" + m[2];
    }
    return result;
}
alert(formatTime(" 1:00"));
alert(formatTime("1:00 "));
alert(formatTime("1:00"));
alert(formatTime("2100"));
alert(formatTime("90:00")); // false


输入格式无效的任何调用都将返回false。

10-08 12:40