|
@@ -1,9 +1,9 @@
|
|
|
/*
|
|
/*
|
|
|
Input Mask plugin extentions
|
|
Input Mask plugin extentions
|
|
|
http://github.com/RobinHerbots/jquery.inputmask
|
|
http://github.com/RobinHerbots/jquery.inputmask
|
|
|
-Copyright (c) 2010 Robin Herbots
|
|
|
|
|
|
|
+Copyright (c) 2010 - 2012 Robin Herbots
|
|
|
Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
|
|
|
-Version: 0.0.6
|
|
|
|
|
|
|
+Version: 1.0.0
|
|
|
|
|
|
|
|
Optional extentions on the jquery.inputmask base
|
|
Optional extentions on the jquery.inputmask base
|
|
|
*/
|
|
*/
|
|
@@ -55,10 +55,20 @@ Optional extentions on the jquery.inputmask base
|
|
|
regex: {
|
|
regex: {
|
|
|
monthpre: new RegExp("[01]"),
|
|
monthpre: new RegExp("[01]"),
|
|
|
month: new RegExp("((0[1-9]|[12][0-9])\/(0[1-9]|1[012]))|(30\/(0[13-9]|1[012]))|(31\/(0[13578]|1[02]))"),
|
|
month: new RegExp("((0[1-9]|[12][0-9])\/(0[1-9]|1[012]))|(30\/(0[13-9]|1[012]))|(31\/(0[13578]|1[02]))"),
|
|
|
|
|
+ yearpre1: new RegExp("[12]"),
|
|
|
|
|
+ yearpre3: new RegExp("(19|20)\\d"),
|
|
|
year: new RegExp("(19|20)\\d{2}"),
|
|
year: new RegExp("(19|20)\\d{2}"),
|
|
|
daypre: new RegExp("[0-3]"),
|
|
daypre: new RegExp("[0-3]"),
|
|
|
day: new RegExp("0[1-9]|[12][0-9]|3[01]")
|
|
day: new RegExp("0[1-9]|[12][0-9]|3[01]")
|
|
|
},
|
|
},
|
|
|
|
|
+ leapday: "29/02/",
|
|
|
|
|
+ onKeyUp: function(e, opts) {
|
|
|
|
|
+ var $input = $(this), input = this;
|
|
|
|
|
+ if(e.ctrlKey && e.keyCode == opts.keyCode.RIGHT){
|
|
|
|
|
+ var today = new Date();
|
|
|
|
|
+ $input.val(today.getDate().toString() + (today.getMonth()+1).toString() + today.getFullYear().toString());
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
definitions: {
|
|
definitions: {
|
|
|
'd': { //day
|
|
'd': { //day
|
|
|
validator: function(chrs, buffer, pos, strict, opts) {
|
|
validator: function(chrs, buffer, pos, strict, opts) {
|
|
@@ -126,7 +136,7 @@ Optional extentions on the jquery.inputmask base
|
|
|
validator: function(chrs, buffer, pos, strict, opts) {
|
|
validator: function(chrs, buffer, pos, strict, opts) {
|
|
|
if (opts.regex.year.test(chrs)) {
|
|
if (opts.regex.year.test(chrs)) {
|
|
|
var dayMonthValue = buffer.join('').substr(0, 6);
|
|
var dayMonthValue = buffer.join('').substr(0, 6);
|
|
|
- if (dayMonthValue != "29/02/")
|
|
|
|
|
|
|
+ if (dayMonthValue != opts.leapday)
|
|
|
return true;
|
|
return true;
|
|
|
else {
|
|
else {
|
|
|
var year = parseInt(chrs); //detect leap year
|
|
var year = parseInt(chrs); //detect leap year
|
|
@@ -142,7 +152,21 @@ Optional extentions on the jquery.inputmask base
|
|
|
},
|
|
},
|
|
|
cardinality: 4,
|
|
cardinality: 4,
|
|
|
prevalidator: [
|
|
prevalidator: [
|
|
|
- { validator: "[12]", cardinality: 1 },
|
|
|
|
|
|
|
+ { validator: function(chrs, buffer, pos, strict, opts) {
|
|
|
|
|
+ var isValid = opts.regex.yearpre1.test(chrs);
|
|
|
|
|
+ if (!strict && !isValid) {
|
|
|
|
|
+ var yearPrefix = (new Date()).getFullYear().toString().slice(0,2);
|
|
|
|
|
+
|
|
|
|
|
+ isValid = opts.regex.yearpre3.test(yearPrefix + chrs);
|
|
|
|
|
+ if (isValid) {
|
|
|
|
|
+ buffer[pos++] = yearPrefix[0];
|
|
|
|
|
+ buffer[pos++] = yearPrefix[1];
|
|
|
|
|
+ return pos;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return isValid;
|
|
|
|
|
+ }
|
|
|
|
|
+ , cardinality: 1 },
|
|
|
{ validator: "(19|20)", cardinality: 2 },
|
|
{ validator: "(19|20)", cardinality: 2 },
|
|
|
{ validator: "(19|20)\\d", cardinality: 3 }
|
|
{ validator: "(19|20)\\d", cardinality: 3 }
|
|
|
]
|
|
]
|
|
@@ -159,8 +183,18 @@ Optional extentions on the jquery.inputmask base
|
|
|
daypre: new RegExp("((0[13-9]|1[012])\/[0-3])|(02\/[0-2])"),
|
|
daypre: new RegExp("((0[13-9]|1[012])\/[0-3])|(02\/[0-2])"),
|
|
|
month: new RegExp("0[1-9]|1[012]"),
|
|
month: new RegExp("0[1-9]|1[012]"),
|
|
|
monthpre: new RegExp("[01]"),
|
|
monthpre: new RegExp("[01]"),
|
|
|
|
|
+ yearpre1: new RegExp("[12]"),
|
|
|
|
|
+ yearpre3: new RegExp("(19|20)\\d"),
|
|
|
year: new RegExp("(19|20)\\d{2}")
|
|
year: new RegExp("(19|20)\\d{2}")
|
|
|
},
|
|
},
|
|
|
|
|
+ leapday: "02/29/",
|
|
|
|
|
+ onKeyUp: function(e, opts) {
|
|
|
|
|
+ var $input = $(this), input = this;
|
|
|
|
|
+ if(e.ctrlKey && e.keyCode == opts.keyCode.RIGHT){
|
|
|
|
|
+ var today = new Date();
|
|
|
|
|
+ $input.val((today.getMonth()+1).toString() + today.getDate().toString() + today.getFullYear().toString());
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
definitions: {
|
|
definitions: {
|
|
|
'd': { //day
|
|
'd': { //day
|
|
|
validator: function(chrs, buffer, pos, strict, opts) {
|
|
validator: function(chrs, buffer, pos, strict, opts) {
|
|
@@ -229,7 +263,7 @@ Optional extentions on the jquery.inputmask base
|
|
|
validator: function(chrs, buffer, pos, strict, opts) {
|
|
validator: function(chrs, buffer, pos, strict, opts) {
|
|
|
if (opts.regex.year.test(chrs)) {
|
|
if (opts.regex.year.test(chrs)) {
|
|
|
var monthDayValue = buffer.join('').substr(0, 6);
|
|
var monthDayValue = buffer.join('').substr(0, 6);
|
|
|
- if (monthDayValue != "02/29/")
|
|
|
|
|
|
|
+ if (monthDayValue != opts.leapday)
|
|
|
return true;
|
|
return true;
|
|
|
else {
|
|
else {
|
|
|
var year = parseInt(chrs); //detect leap year
|
|
var year = parseInt(chrs); //detect leap year
|
|
@@ -245,7 +279,21 @@ Optional extentions on the jquery.inputmask base
|
|
|
},
|
|
},
|
|
|
cardinality: 4,
|
|
cardinality: 4,
|
|
|
prevalidator: [
|
|
prevalidator: [
|
|
|
- { validator: "[12]", cardinality: 1 },
|
|
|
|
|
|
|
+ { validator: function(chrs, buffer, pos, strict, opts) {
|
|
|
|
|
+ var isValid = opts.regex.yearpre1.test(chrs);
|
|
|
|
|
+ if (!strict && !isValid) {
|
|
|
|
|
+ var yearPrefix = (new Date()).getFullYear().toString().slice(0,2);
|
|
|
|
|
+
|
|
|
|
|
+ isValid = opts.regex.yearpre3.test(yearPrefix + chrs);
|
|
|
|
|
+ if (isValid) {
|
|
|
|
|
+ buffer[pos++] = yearPrefix[0];
|
|
|
|
|
+ buffer[pos++] = yearPrefix[1];
|
|
|
|
|
+ return pos;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return isValid;
|
|
|
|
|
+ }
|
|
|
|
|
+ , cardinality: 1 },
|
|
|
{ validator: "(19|20)", cardinality: 2 },
|
|
{ validator: "(19|20)", cardinality: 2 },
|
|
|
{ validator: "(19|20)\\d", cardinality: 3 }
|
|
{ validator: "(19|20)\\d", cardinality: 3 }
|
|
|
]
|
|
]
|
|
@@ -286,7 +334,20 @@ Optional extentions on the jquery.inputmask base
|
|
|
greedy: false,
|
|
greedy: false,
|
|
|
numericInput: true,
|
|
numericInput: true,
|
|
|
regex: {
|
|
regex: {
|
|
|
- number: function(radixPoint, digits) { return new RegExp("^[\+\\d\-]{1}\\d*[" + radixPoint + "]?\\d" + digits + "$"); }
|
|
|
|
|
|
|
+ number: function(radixPoint, digits) { return new RegExp("^[\+\\d\-]{1}\\d*[" + radixPoint + "]?\\d" + digits + "$"); }
|
|
|
|
|
+ },
|
|
|
|
|
+ onKeyDown: function(e, opts) {
|
|
|
|
|
+ var $input = $(this), input = this;
|
|
|
|
|
+ if (e.keyCode == opts.keyCode.TAB) {
|
|
|
|
|
+ var nptStr = input._valueGet();
|
|
|
|
|
+ var radixPosition = nptStr.indexOf(opts.radixPoint[opts.radixPoint.length -1]);
|
|
|
|
|
+ if(radixPosition != -1){
|
|
|
|
|
+ for(var i = 1; i < opts.digits; i++) {
|
|
|
|
|
+ if(nptStr[radixPosition + i]) nptStr = nptStr + "0";
|
|
|
|
|
+ }
|
|
|
|
|
+ $input.val(nptStr);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
definitions: {
|
|
definitions: {
|
|
|
'~': { //real number
|
|
'~': { //real number
|