使用正则表达式分隔4个数字:符号

时间:2013-07-11 10:22:45

标签: javascript jquery html regex

我正在研究自定义时间选择器。我想要做的是:如果用户输入1234,则会更改为12:34。问题根本没有发生(我没有得到例外)。以下是我到目前为止的情况:

// check time entry
(function ($) {
    String.prototype.Timeset = function(){
        return this.replace(/^\d{2}\:\d$/,"$1,");
    }
    $.fn.Time = function(){
        return this.each(function(){
            $(this).val($(this).val().Timeset());
        })
    }
})(jQuery);

HTML标记:

<input id="txtTime" type="text" maxlength="4" onpaste="return false;" onchange="this.value = this.value.Timeset();" />

我怎样才能做到这一点?我的正则表达也可能是这个的根源。请注意,我不想使用任何外部掩码插件,因为我必须在此处应用hot-keys

1 个答案:

答案 0 :(得分:2)

我们试试这个:

function formatTime(s) {
    return s.replace(/\D/g, "").replace(/^(\d\d)(\d\d).*$/, "$1:$2");
}

(function ($) {
    $.fn.timeInput = function() {
        return $(this).change(function() {
            $(this).val(formatTime($(this).val()))
        });
    }
})(jQuery);

http://jsfiddle.net/LAbFQ/