Browse Source

Merge branch '1.x' into 2.x

Robin Herbots 13 years ago
parent
commit
7509c7b412
3 changed files with 71 additions and 16 deletions
  1. 29 1
      README.md
  2. 14 15
      js/jquery.inputmask.numeric.extensions.js
  3. 28 0
      nuget/jquery.inputmask.nuspec

+ 29 - 1
README.md

@@ -376,11 +376,32 @@ $(document).ready(function(){
 First grab the sources from github.  In the root you type ant.
 First grab the sources from github.  In the root you type ant.
 A new folder dist is created with the minified and optimized js-files
 A new folder dist is created with the minified and optimized js-files
 
 
+## .NET Nuget Package Install
+```html
+PM> Install-Package jQuery.InputMask
+```
+
+In App_Start, BundleConfig.cs
+```c#
+bundles.Add(new ScriptBundle("~/bundles/inputmask").Include(
+                        "~/Scripts/jquery.inputmask.js",
+						"~/Scripts/jquery.inputmask.extensions.js",
+						"~/Scripts/jquery.inputmask.date.extensions.js",
+						"~/Scripts/jquery.inputmask.custom.extensions.js",
+						"~/Scripts/jquery.inputmask.numeric.extensions.js"));
+```
+
+In Layout
+```html
+@Scripts.Render("~/bundles/inputmask")
+```
+
+
 # jquery.inputmask extensions
 # jquery.inputmask extensions
 
 
 ## Alias definitions
 ## Alias definitions
 
 
-### date aliases
+### date & datetime aliases
 
 
 ```javascript
 ```javascript
 $(document).ready(function(){
 $(document).ready(function(){
@@ -399,6 +420,13 @@ input:  352012			result: 03/05/2012
 input:  3/530			result: 03/05/2030  
 input:  3/530			result: 03/05/2030  
 input:  ctrl rightarrow	        result: the date from today  
 input:  ctrl rightarrow	        result: the date from today  
 
 
+```javascript
+$(document).ready(function(){
+   $("#date").inputmask("datetime"); // 24h
+   $("#date").inputmask("datetime12"); // am/pm
+});
+```
+
 ### numeric aliases
 ### numeric aliases
 
 
 ```javascript
 ```javascript

+ 14 - 15
js/jquery.inputmask.numeric.extensions.js

@@ -22,7 +22,10 @@ Optional extensions on the jquery.inputmask base
             autoGroup: false,
             autoGroup: false,
             regex: {
             regex: {
                 number: function (groupSeparator, groupSize, radixPoint, digits) {
                 number: function (groupSeparator, groupSize, radixPoint, digits) {
-                    return new RegExp("^[\+\\d\-]{1}[\\d" + groupSeparator + "]*[" + radixPoint + "]?\\d" + digits + "$");
+                	var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, groupSeparator);
+                	var escapedRadixPoint = $.inputmask.escapeRegex.call(this, radixPoint);
+                	var digitExpression = isNaN(digits) ? digits : '{0,' + digits + '}'
+                    return new RegExp("^[\+\-]?(\\d{1," + groupSize + "}" + escapedGroupSeparator + ")?((\\d{" + groupSize + "}" + escapedGroupSeparator + ")|\\d)*[" + escapedRadixPoint + "]?\\d" + digitExpression + "$");
                 }
                 }
             },
             },
             onKeyDown: function (e, opts) {
             onKeyDown: function (e, opts) {
@@ -43,15 +46,6 @@ Optional extensions on the jquery.inputmask base
             definitions: {
             definitions: {
                 '~': { //real number
                 '~': { //real number
                     validator: function (chrs, buffer, pos, strict, opts) {
                     validator: function (chrs, buffer, pos, strict, opts) {
-                        function digitExpression() {
-                            return isNaN(opts.digits) ? opts.digits : '{0,' + opts.digits + '}';
-                        }
-                        function radixPointExpression() {
-                            return opts.radixPoint == '.' ? "\\\\" + opts.radixPoint : opts.radixPoint;
-                        }
-                        function separatorExpression() {
-                            return opts.groupSeparator == '.' ? "\\\\" + opts.groupSeparator : opts.groupSeparator;
-                        }
                         var cbuf = buffer.slice();
                         var cbuf = buffer.slice();
                         cbuf.splice(pos, 0, chrs);
                         cbuf.splice(pos, 0, chrs);
                         var bufferStr = cbuf.join('');
                         var bufferStr = cbuf.join('');
@@ -59,17 +53,17 @@ Optional extensions on the jquery.inputmask base
                             buffer[0]= "";
                             buffer[0]= "";
                             return { "pos": 1, "c": "" };
                             return { "pos": 1, "c": "" };
                         }
                         }
-                        var isValid = opts.regex.number(separatorExpression(), opts.groupSize, radixPointExpression(), digitExpression()).test(bufferStr);
+                        var isValid = opts.regex.number(opts.groupSeparator, opts.groupSize, opts.radixPoint, opts.digits).test(bufferStr);
                         if (!isValid) {
                         if (!isValid) {
                             if (strict) { //shiftL & shiftR use strict only validate from 0 to position
                             if (strict) { //shiftL & shiftR use strict only validate from 0 to position
                                 var cbuf = buffer.slice(0, pos);
                                 var cbuf = buffer.slice(0, pos);
                                 cbuf.splice(pos, 0, chrs);
                                 cbuf.splice(pos, 0, chrs);
                                 var bufferStr = cbuf.join('');
                                 var bufferStr = cbuf.join('');
-                                var isValid = opts.regex.number(separatorExpression(), opts.groupSize, radixPointExpression(), digitExpression()).test(bufferStr);
+                                var isValid = opts.regex.number(opts.groupSeparator, opts.groupSize, opts.radixPoint, opts.digits).test(bufferStr);
                             }
                             }
                             else {
                             else {
                                 if (bufferStr == opts.radixPoint) {
                                 if (bufferStr == opts.radixPoint) {
-                                    isValid = opts.regex.number(separatorExpression(), opts.groupSize, radixPointExpression(), digitExpression()).test("0" + bufferStr);
+                                    isValid = opts.regex.number(opts.groupSeparator, opts.groupSize, opts.radixPoint, opts.digits).test("0" + bufferStr);
                                     if (isValid) {
                                     if (isValid) {
                                         buffer[pos] = "0";
                                         buffer[pos] = "0";
                                         pos++;
                                         pos++;
@@ -82,7 +76,7 @@ Optional extensions on the jquery.inputmask base
                         if (opts.autoGroup && isValid != false && !strict) {
                         if (opts.autoGroup && isValid != false && !strict) {
                             var bufVal = buffer.join('') + chrs;
                             var bufVal = buffer.join('') + chrs;
                             bufVal = bufVal.replace(new RegExp("\\" + opts.groupSeparator, "g"), '');
                             bufVal = bufVal.replace(new RegExp("\\" + opts.groupSeparator, "g"), '');
-                            var reg = new RegExp('(-?[0-9]+)([0-9]{' + opts.groupSize + '})');
+                            var reg = new RegExp('(-?\\d+)(\\d{' + opts.groupSize + '})');
                             while (reg.test(bufVal)) {
                             while (reg.test(bufVal)) {
                                 bufVal = bufVal.replace(reg, '$1' + opts.groupSeparator + '$2');
                                 bufVal = bufVal.replace(reg, '$1' + opts.groupSeparator + '$2');
                             }
                             }
@@ -104,7 +98,12 @@ Optional extensions on the jquery.inputmask base
         },
         },
         'non-negative-decimal': {
         'non-negative-decimal': {
             regex: {
             regex: {
-                number: function (groupSeparator, groupSize, radixPoint, digits) { return new RegExp("^[\\d]+[" + radixPoint + "]?\\d" + digits + "$"); }
+                 number: function (groupSeparator, groupSize, radixPoint, digits) {
+                	var escapedGroupSeparator = $.inputmask.escapeRegex.call(this, groupSeparator);
+                	var escapedRadixPoint = $.inputmask.escapeRegex.call(this, radixPoint);
+                	var digitExpression = isNaN(digits) ? digits : '{0,' + digits + '}'
+                     return new RegExp("^[\+]?(\\d{1," + groupSize + "}" + escapedGroupSeparator + ")?((\\d{" + groupSize + "}" + escapedGroupSeparator + ")|\\d)*[" + escapedRadixPoint + "]?\\d" + digitExpression + "$");
+                }
             },
             },
             alias: "decimal"
             alias: "decimal"
         },
         },

+ 28 - 0
nuget/jquery.inputmask.nuspec

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+    <metadata>
+        <id>jQuery.InputMask</id>
+        <version>0.0.0</version>
+        <title>jQuery Input Mask</title>
+        <authors>Robin Herbots</authors>
+        <owners>Robin Herbots</owners>
+        <licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
+        <projectUrl>https://github.com/RobinHerbots/jquery.inputmask</projectUrl>
+        <requireLicenseAcceptance>true</requireLicenseAcceptance>
+        <description>jquery.inputmask is a jquery plugin which create an input mask.
+
+Copyright (c) 2010 - 2013 Robin Herbots Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+
+The plugin is based on the idea of the maskedinput plugin of Josh Bush (http://digitalbush.com/projects/masked-input-plugin), but has finer control over the 'mask-definitions'.
+
+A definition can have a cardinality and have multiple prevalidators.</description>
+        <tags>jQuery, plugins</tags>
+    </metadata>
+    <files>
+        <file src="..\js\jquery.inputmask.custom.extensions.js" target="content\Scripts\jquery.inputmask.custom.extensions.js" />
+        <file src="..\js\jquery.inputmask.date.extensions.js" target="content\Scripts\jquery.inputmask.date.extensions.js" />
+        <file src="..\js\jquery.inputmask.extensions.js" target="content\Scripts\jquery.inputmask.extensions.js" />
+        <file src="..\js\jquery.inputmask.numeric.extensions.js" target="content\Scripts\jquery.inputmask.numeric.extensions.js" />
+        <file src="..\js\jquery.inputmask.js" target="content\Scripts\jquery.inputmask.js" />
+    </files>
+</package>