Javascript 使用jQuery以自由格式在屏蔽输入字段中输入数字

Javascript 使用jQuery以自由格式在屏蔽输入字段中输入数字,javascript,jquery,Javascript,Jquery,我想使用mask插件构建一个表单输入,该插件将更改输入的时间特征,以允许用户以自由格式输入数字,系统将使用jQuery将输入的数字转换为适当的时间显示 示例:用户输入“135”,系统将其转换为“01:35” 掩码的代码为: $("input.time").mask("99:99"); 到目前为止,我的代码如下: $(document).ready(function() { $('#awareness-hour').blur(function() { if(!$('#awareness-

我想使用mask插件构建一个表单输入,该插件将更改输入的时间特征,以允许用户以自由格式输入数字,系统将使用jQuery将输入的数字转换为适当的时间显示

示例:用户输入“135”,系统将其转换为“01:35”

掩码的代码为:

$("input.time").mask("99:99");
到目前为止,我的代码如下:

$(document).ready(function() {
$('#awareness-hour').blur(function() {
    if(!$('#awareness-hour').val().match(/([0-1][0-9]|2[0-3]):[0-5][0-9]/)){
        alert('invalid');           
    }else{
        return true;
    };
});
});

这将纠正您提到的场景,并且仅当根据第二个正则表达式输入的时间有效时才更新输入。希望你有了这个想法,这就行了:

$("input.time").blur(function() {       
    var userInput = $(this).val().replace(/^([0-9])([0-9]):([0-9])_$/, "0$1:$2$3");     
    if(!userInput.match(/([0-1][0-9]|2[0-3]):[0-5][0-9]/)){
        alert('invalid');           
    }else{
        $(this).val(userInput);
        return true;
    };
}).mask("99:99");

当输入项的长度为3而不是4时,您是否只想在左侧加零?当然,如果它以24小时格式进行验证。我试图帮助您,但我仍然不明白您到底想要什么。我不知道你的面具插件,但我正在看。那么你是说如果用户在99:99掩码中输入13:5,你想接受01:35?如果是这样的话,在这种情况下,您从掩码插件获得的值是什么,135还是“13:5”?是否要更新输入?我想更好地了解你正在努力解决的问题。你的面具插件做它的事情有什么价值?你的时间有什么价值!当您询问“如果用户输入13:5,则字段将更改为01:35”时,您的假设是正确的。当他们离开该特定字段时,应触发此操作。我的委托人想要有视觉吸引力的面具。有没有一种方法可以在没有面具插件的情况下达到同样的效果?效果非常好。我欠你一杯啤酒