Robin Herbots 12 年之前
父节点
当前提交
9c4d3d16ac
共有 2 个文件被更改,包括 7 次插入22 次删除
  1. 3 18
      js/jquery.inputmask.js
  2. 4 4
      qunit/tests.js

+ 3 - 18
js/jquery.inputmask.js

@@ -438,7 +438,7 @@
                         var test = tst["match"];
                         var loopend = c ? 1 : 0, chrs = '', buffer = getBuffer();
                         for (var i = test.cardinality; i > loopend; i--) {
-                            chrs += getBufferElement(buffer, position - (i - 1), true);
+                            chrs += getBufferElement(position - (i - 1));
                         }
                         if (c) {
                             chrs += c;
@@ -538,23 +538,8 @@
                 ;
                 return position;
             }
-            function getBufferElement(buffer, position) {
-                position = prepareBuffer(buffer, position);
-                return buffer[position];
-            }
-            //needed to handle the non-greedy mask repetitions
-            function prepareBuffer(buffer, position) { //TODO DROP BUFFER PASSING + optimize me
-                if (buffer.length <= position) {
-                    var trbuffer = getMaskTemplate(true, position);
-                    buffer.length = trbuffer.length;
-                    for (var i = 0, bl = buffer.length; i < bl; i++) {
-                        if (buffer[i] == undefined)
-                            buffer[i] = trbuffer[i];
-                    }
-                    buffer[position] = getPlaceholder(position);
-                }
-
-                return position;
+            function getBufferElement(position) {
+                return getMaskSet()["validPositions"][position] == undefined ? getPlaceholder(position) : getMaskSet()["validPositions"][position]["input"];
             }
             function writeBuffer(input, buffer, caretPos) {
                 input._valueSet(buffer.join(''));

+ 4 - 4
qunit/tests.js

@@ -2182,10 +2182,10 @@ test("inputmask(\"9-a{1,3}/9{2,3}\" - simple dynamic mask - greedy true", functi
 
     $("#testmask").remove();
 });
-test("inputmask(\"*{1,20}[.*{1,20}][.*{1,20}]@*{1,20}.*{2,6}[.*{2}]\" - email mask greedy false", function () {
+test("email mask greedy false", function () {
     var $fixture = $( "#qunit-fixture" );
 	$fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("*{1,20}[.*{1,20}][.*{1,20}]@*{1,20}.*{2,6}[.*{2}]",{ greedy: false });
+    $("#testmask").inputmask("email",{ greedy: false });
 
     $("#testmask")[0].focus();
     $("#testmask").Type("some.body@mail.com");
@@ -2194,10 +2194,10 @@ test("inputmask(\"*{1,20}[.*{1,20}][.*{1,20}]@*{1,20}.*{2,6}[.*{2}]\" - email ma
 
     $("#testmask").remove();
 });
-test("inputmask(\"*{1,20}[.*{1,20}][.*{1,20}]@*{1,20}.*{2,6}[.*{2}]\" - email mask greedy true", function () {
+test("email mask greedy true", function () {
     var $fixture = $( "#qunit-fixture" );
 	$fixture.append('<input type="text" id="testmask" />');
-    $("#testmask").inputmask("*{1,20}[.*{1,20}][.*{1,20}]@*{1,20}.*{2,6}[.*{2}]",{ greedy: true });
+    $("#testmask").inputmask("email",{ greedy: true });
 
     $("#testmask")[0].focus();
     $("#testmask").Type("some.body@mail.com");