Вход Регистрация
Файл: js/mask.js
Строк: 354
<?php
/*
    jQuery Masked Input Plugin
    Copyright (c) 2007 - 2014 Josh Bush (digitalbush.com)
    Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
    Version: 1.4.0
*/
!function(factory) {
    
"function" == typeof define && define.amd define([ "jquery" ], factory) : factory("object" == typeof exports ? require("jquery") : jQuery);
}(function($) {
    var 
caretTimeoutIdua navigator.userAgentiPhone = /iphone/i.test(ua), chrome = /chrome/i.test(ua), android = /android/i.test(ua);
    $.
mask = {
        
definitions: {
            
"9""[0-9]",
            
a"[A-Za-z]",
            
"*""[A-Za-z0-9]"
        
},
        
autoclear: !0,
        
dataName"rawMaskFn",
        
placeholder"_"
    
}, $.fn.extend({
        
caret: function(beginend) {
            var 
range;
            if (
!== this.length && !this.is(":hidden")) return "number" == typeof begin ? (end "number" == typeof end end begin
            
this.each(function() {
                
this.setSelectionRange this.setSelectionRange(beginend) : this.createTextRange && (range this.createTextRange(), 
                
range.collapse(!0), range.moveEnd("character"end), range.moveStart("character"begin), 
                
range.select());
            })) : (
this[0].setSelectionRange ? (begin this[0].selectionStartend this[0].selectionEnd) : document.selection && document.selection.createRange && (range document.selection.createRange(), 
            
begin range.duplicate().moveStart("character", -1e5), end begin range.text.length), 
            {
                
beginbegin,
                
endend
            
});
        },
        
unmask: function() {
            return 
this.trigger("unmask");
        },
        
mask: function(masksettings) {
            var 
inputdefstestspartialPositionfirstNonMaskPoslastRequiredNonMaskPoslenoldVal;
            if (!
mask && this.length 0) {
                
input = $(this[0]);
                var fn = 
input.data($.mask.dataName);
                return fn ? fn() : 
void 0;
            }
            return 
settings = $.extend({
                
autoclear: $.mask.autoclear,
                
placeholder: $.mask.placeholder,
                
completednull
            
}, settings), defs = $.mask.definitionstests = [], partialPosition len mask.length
            
firstNonMaskPos null, $.each(mask.split(""), function(ic) {
                
"?" == ? (len--, partialPosition i) : defs[c] ? (tests.push(new RegExp(defs[c])), 
                
null === firstNonMaskPos && (firstNonMaskPos tests.length 1), partialPosition && (lastRequiredNonMaskPos tests.length 1)) : tests.push(null);
            }), 
this.trigger("unmask").each(function() {
                function 
tryFireCompleted() {
                    if (
settings.completed) {
                        for (var 
firstNonMaskPoslastRequiredNonMaskPos >= ii++) if (tests[i] && buffer[i] === getPlaceholder(i)) return;
                        
settings.completed.call(input);
                    }
                }
                function 
getPlaceholder(i) {
                    return 
settings.placeholder.charAt(settings.placeholder.length 0);
                }
                function 
seekNext(pos) {
                    for (;++
pos len && !tests[pos]; ) ;
                    return 
pos;
                }
                function 
seekPrev(pos) {
                    for (;--
pos >= && !tests[pos]; ) ;
                    return 
pos;
                }
                function 
shiftL(beginend) {
                    var 
ij;
                    if (!(
begin)) {
                        for (
beginseekNext(end); len ii++) if (tests[i]) {
                            if (!(
len && tests[i].test(buffer[j]))) break;
                            
buffer[i] = buffer[j], buffer[j] = getPlaceholder(j), seekNext(j);
                        }
                        
writeBuffer(), input.caret(Math.max(firstNonMaskPosbegin));
                    }
                }
                function 
shiftR(pos) {
                    var 
icjt;
                    for (
posgetPlaceholder(pos); len ii++) if (tests[i]) {
                        if (
seekNext(i), buffer[i], buffer[i] = c, !(len && tests[j].test(t))) break;
                        
t;
                    }
                }
                function 
androidInputEvent() {
                    var 
curVal input.val(), pos input.caret();
                    if (
curVal.length oldVal.length) {
                        for (
checkVal(!0); pos.begin && !tests[pos.begin 1]; ) pos.begin--;
                        if (
=== pos.begin) for (;pos.begin firstNonMaskPos && !tests[pos.begin]; ) pos.begin++;
                        
input.caret(pos.beginpos.begin);
                    } else {
                        for (
checkVal(!0); pos.begin len && !tests[pos.begin]; ) pos.begin++;
                        
input.caret(pos.beginpos.begin);
                    }
                    
tryFireCompleted();
                }
                function 
blurEvent() {
                    
checkVal(), input.val() != focusText && input.change();
                }
                function 
keydownEvent(e) {
                    if (!
input.prop("readonly")) {
                        var 
posbeginende.which || e.keyCode;
                        
oldVal input.val(), === || 46 === || iPhone && 127 === ? (pos input.caret(), 
                        
begin pos.beginend pos.endend begin === && (begin 46 !== seekPrev(begin) : end seekNext(begin 1), 
                        
end 46 === seekNext(end) : end), clearBuffer(beginend), shiftL(beginend 1), 
                        
e.preventDefault()) : 13 === blurEvent.call(thise) : 27 === && (input.val(focusText), 
                        
input.caret(0checkVal()), e.preventDefault());
                    }
                }
                function 
keypressEvent(e) {
                    if (!
input.prop("readonly")) {
                        var 
pcnexte.which || e.keyCodepos input.caret();
                        if (!(
e.ctrlKey || e.altKey || e.metaKey || 32 k) && && 13 !== k) {
                            if (
pos.end pos.begin !== && (clearBuffer(pos.beginpos.end), shiftL(pos.beginpos.end 1)), 
                            
seekNext(pos.begin 1), len && (String.fromCharCode(k), tests[p].test(c))) {
                                if (
shiftR(p), buffer[p] = cwriteBuffer(), next seekNext(p), android) {
                                    var 
proxy = function() {
                                        $.
proxy($.fn.caretinputnext)();
                                    };
                                    
setTimeout(proxy0);
                                } else 
input.caret(next);
                                
pos.begin <= lastRequiredNonMaskPos && tryFireCompleted();
                            }
                            
e.preventDefault();
                        }
                    }
                }
                function 
clearBuffer(startend) {
                    var 
i;
                    for (
startend && len ii++) tests[i] && (buffer[i] = getPlaceholder(i));
                }
                function 
writeBuffer() {
                    
input.val(buffer.join(""));
                }
                function 
checkVal(allow) {
                    var 
icpostest input.val(), lastMatch = -1;
                    for (
0pos 0len ii++) if (tests[i]) {
                        for (
buffer[i] = getPlaceholder(i); pos++ < test.length; ) if (test.charAt(pos 1), 
                        
tests[i].test(c)) {
                            
buffer[i] = clastMatch i;
                            break;
                        }
                        if (
pos test.length) {
                            
clearBuffer(1len);
                            break;
                        }
                    } else 
buffer[i] === test.charAt(pos) && pos++, partialPosition && (lastMatch i);
                    return 
allow writeBuffer() : partialPosition lastMatch settings.autoclear || buffer.join("") === defaultBuffer ? (input.val() && input.val(""), 
                    
clearBuffer(0len)) : writeBuffer() : (writeBuffer(), input.val(input.val().substring(0lastMatch 1))), 
                    
partialPosition firstNonMaskPos;
                }
                var 
input = $(this), buffer = $.map(mask.split(""), function(ci) {
                    return 
"?" != defs[c] ? getPlaceholder(i) : void 0;
                }), 
defaultBuffer buffer.join(""), focusText input.val();
                
input.data($.mask.dataName, function() {
                    return $.
map(buffer, function(ci) {
                        return 
tests[i] && != getPlaceholder(i) ? null;
                    }).
join("");
                }), 
input.one("unmask", function() {
                    
input.off(".mask").removeData($.mask.dataName);
                }).
on("focus.mask", function() {
                    if (!
input.prop("readonly")) {
                        
clearTimeout(caretTimeoutId);
                        var 
pos;
                        
focusText input.val(), pos checkVal(), caretTimeoutId setTimeout(function() {
                            
writeBuffer(), pos == mask.replace("?""").length input.caret(0pos) : input.caret(pos);
                        }, 
10);
                    }
                }).
on("blur.mask"blurEvent).on("keydown.mask"keydownEvent).on("keypress.mask"keypressEvent).on("input.mask paste.mask", function() {
                    
input.prop("readonly") || setTimeout(function() {
                        var 
pos checkVal(!0);
                        
input.caret(pos), tryFireCompleted();
                    }, 
0);
                }), 
chrome && android && input.off("input.mask").on("input.mask"androidInputEvent), 
                
checkVal();
            });
        }
    });
});
?>
Онлайн: 1
Реклама