Robin Herbots 2 年 前
コミット
352c41440a

+ 1 - 1
bower.json

@@ -1,6 +1,6 @@
 {
   "name": "inputmask",
-  "version": "5.0.9-beta.35",
+  "version": "5.0.9-beta.36",
   "main": [
 	  "./index.js",
     "./css/inputmask.css"

+ 1 - 1
composer.json

@@ -1,7 +1,7 @@
 {
   "name": "robinherbots/inputmask",
   "description": "Inputmask is a javascript library which creates an input mask.  Inputmask can run against vanilla javascript, jQuery and jqlite.",
-  "version": "5.0.9-beta.35",
+  "version": "5.0.9-beta.36",
   "type": "library",
   "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
   "homepage": "http://robinherbots.github.io/Inputmask",

+ 11 - 7
dist/inputmask.js

@@ -3,7 +3,7 @@
  * https://github.com/RobinHerbots/Inputmask
  * Copyright (c) 2010 - 2023 Robin Herbots
  * Licensed under the MIT license
- * Version: 5.0.9-beta.35
+ * Version: 5.0.9-beta.36
  */
 !function(e, t) {
     if ("object" == typeof exports && "object" == typeof module) module.exports = t(); else if ("function" == typeof define && define.amd) define([], t); else {
@@ -1436,12 +1436,16 @@
                 });
                 var c = new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]");
                 function u(e, t, n, i, a) {
-                    return n - 1 > -1 && "." !== t.buffer[n - 1] ? (e = t.buffer[n - 1] + e, e = n - 2 > -1 && "." !== t.buffer[n - 2] ? t.buffer[n - 2] + e : "0" + e) : e = "00" + e, 
-                    a.greedy && parseInt(e) > 255 && c.test("00" + e.charAt(2)) ? {
-                        refreshFromBuffer: !0,
-                        buffer: [].concat(l(t.buffer.slice(0, n)), [ ".", e.charAt(2) ]),
-                        caret: n + 2
-                    } : c.test(e);
+                    if (n - 1 > -1 && "." !== t.buffer[n - 1] ? (e = t.buffer[n - 1] + e, e = n - 2 > -1 && "." !== t.buffer[n - 2] ? t.buffer[n - 2] + e : "0" + e) : e = "00" + e, 
+                    a.greedy && parseInt(e) > 255 && c.test("00" + e.charAt(2))) {
+                        var r = [].concat(l(t.buffer.slice(0, n)), [ ".", e.charAt(2) ]);
+                        if (r.join("").match(/\./g).length < 4) return {
+                            refreshFromBuffer: !0,
+                            buffer: r,
+                            caret: n + 2
+                        };
+                    }
+                    return c.test(e);
                 }
                 a.default.extendAliases({
                     cssunit: {

ファイルの差分が大きいため隠しています
+ 2 - 2
dist/inputmask.min.js


+ 11 - 7
dist/jquery.inputmask.js

@@ -3,7 +3,7 @@
  * https://github.com/RobinHerbots/Inputmask
  * Copyright (c) 2010 - 2023 Robin Herbots
  * Licensed under the MIT license
- * Version: 5.0.9-beta.35
+ * Version: 5.0.9-beta.36
  */
 !function(e, t) {
     if ("object" == typeof exports && "object" == typeof module) module.exports = t(require("jquery")); else if ("function" == typeof define && define.amd) define([ "jquery" ], t); else {
@@ -1267,12 +1267,16 @@
                 });
                 var c = new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]");
                 function u(e, t, i, n, a) {
-                    return i - 1 > -1 && "." !== t.buffer[i - 1] ? (e = t.buffer[i - 1] + e, e = i - 2 > -1 && "." !== t.buffer[i - 2] ? t.buffer[i - 2] + e : "0" + e) : e = "00" + e, 
-                    a.greedy && parseInt(e) > 255 && c.test("00" + e.charAt(2)) ? {
-                        refreshFromBuffer: !0,
-                        buffer: [].concat(s(t.buffer.slice(0, i)), [ ".", e.charAt(2) ]),
-                        caret: i + 2
-                    } : c.test(e);
+                    if (i - 1 > -1 && "." !== t.buffer[i - 1] ? (e = t.buffer[i - 1] + e, e = i - 2 > -1 && "." !== t.buffer[i - 2] ? t.buffer[i - 2] + e : "0" + e) : e = "00" + e, 
+                    a.greedy && parseInt(e) > 255 && c.test("00" + e.charAt(2))) {
+                        var r = [].concat(s(t.buffer.slice(0, i)), [ ".", e.charAt(2) ]);
+                        if (r.join("").match(/\./g).length < 4) return {
+                            refreshFromBuffer: !0,
+                            buffer: r,
+                            caret: i + 2
+                        };
+                    }
+                    return c.test(e);
                 }
                 a.default.extendAliases({
                     cssunit: {

ファイルの差分が大きいため隠しています
+ 2 - 2
dist/jquery.inputmask.min.js


+ 7 - 7
inputmask-pages/package-lock.json

@@ -24,7 +24,7 @@
         "eslint-plugin-react-hooks": "^4.6.0",
         "gh-pages": "^5.0.0",
         "history": "^5.3.0",
-        "inputmask": "^5.0.9-beta.33",
+        "inputmask": "^5.0.9-beta.35",
         "postcss-normalize": "^10.0.1",
         "prettier": "3.0.0",
         "react": "^18.2.0",
@@ -11016,9 +11016,9 @@
       "dev": true
     },
     "node_modules/inputmask": {
-      "version": "5.0.9-beta.33",
-      "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.33.tgz",
-      "integrity": "sha512-lMJexsa0pGMkgvBq3zqQMkt8jat3iVzj6A34cMZqLhmGqfx0wB0x04FnY4DhFwhcAC5G7VE3wxvfZWi456Fn0g==",
+      "version": "5.0.9-beta.35",
+      "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.35.tgz",
+      "integrity": "sha512-pnqGT0O3g7NN4y9UAeKI47kse4W+ss+soYOGhggNg0EBH9+BEvZH7YiH4x7wLbnKm6a5E90d2Nh7UDN9fzgLEg==",
       "dev": true
     },
     "node_modules/internal-slot": {
@@ -30178,9 +30178,9 @@
       "dev": true
     },
     "inputmask": {
-      "version": "5.0.9-beta.33",
-      "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.33.tgz",
-      "integrity": "sha512-lMJexsa0pGMkgvBq3zqQMkt8jat3iVzj6A34cMZqLhmGqfx0wB0x04FnY4DhFwhcAC5G7VE3wxvfZWi456Fn0g==",
+      "version": "5.0.9-beta.35",
+      "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.35.tgz",
+      "integrity": "sha512-pnqGT0O3g7NN4y9UAeKI47kse4W+ss+soYOGhggNg0EBH9+BEvZH7YiH4x7wLbnKm6a5E90d2Nh7UDN9fzgLEg==",
       "dev": true
     },
     "internal-slot": {

+ 1 - 1
inputmask-pages/package.json

@@ -20,7 +20,7 @@
     "eslint-plugin-react-hooks": "^4.6.0",
     "gh-pages": "^5.0.0",
     "history": "^5.3.0",
-    "inputmask": "^5.0.9-beta.33",
+    "inputmask": "^5.0.9-beta.35",
     "postcss-normalize": "^10.0.1",
     "prettier": "3.0.0",
     "react": "^18.2.0",

+ 8 - 5
lib/extensions/inputmask.extensions.js

@@ -28,11 +28,14 @@ function ipValidator(chrs, maskset, pos, strict, opts) {
 		} else chrs = "0" + chrs;
 	} else chrs = "00" + chrs;
 	if (opts.greedy && parseInt(chrs) > 255 && ipValidatorRegex.test("00" + chrs.charAt(2))) {
-		return {
-			refreshFromBuffer: true,
-			buffer: [...maskset.buffer.slice(0, pos), ".", chrs.charAt(2)],
-			caret: pos + 2
-		};
+		var buffer = [...maskset.buffer.slice(0, pos), ".", chrs.charAt(2)];
+		if (buffer.join("").match(/\./g).length < 4) {
+			return {
+				refreshFromBuffer: true,
+				buffer: buffer,
+				caret: pos + 2
+			};
+		}
 	}
 	return ipValidatorRegex.test(chrs);
 }

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "inputmask",
-  "version": "5.0.9-beta.35",
+  "version": "5.0.9-beta.36",
   "description": "Inputmask is a javascript library which creates an input mask.  Inputmask can run against vanilla javascript, jQuery and jqlite.",
   "main": "dist/inputmask.js",
   "exports": {