[bf47591] | 1 | /* |
---|
| 2 | Input Mask plugin extensions |
---|
| 3 | http://github.com/RobinHerbots/jquery.inputmask |
---|
| 4 | Copyright (c) 2010 - 2014 Robin Herbots |
---|
| 5 | Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) |
---|
| 6 | Version: 0.0.0 |
---|
| 7 | |
---|
| 8 | Optional extensions on the jquery.inputmask base |
---|
| 9 | */ |
---|
| 10 | (function ($) { |
---|
| 11 | //date & time aliases |
---|
| 12 | $.extend($.inputmask.defaults.definitions, { |
---|
| 13 | 'h': { //hours |
---|
| 14 | validator: "[01][0-9]|2[0-3]", |
---|
| 15 | cardinality: 2, |
---|
| 16 | prevalidator: [{ validator: "[0-2]", cardinality: 1 }] |
---|
| 17 | }, |
---|
| 18 | 's': { //seconds || minutes |
---|
| 19 | validator: "[0-5][0-9]", |
---|
| 20 | cardinality: 2, |
---|
| 21 | prevalidator: [{ validator: "[0-5]", cardinality: 1 }] |
---|
| 22 | }, |
---|
| 23 | 'd': { //basic day |
---|
| 24 | validator: "0[1-9]|[12][0-9]|3[01]", |
---|
| 25 | cardinality: 2, |
---|
| 26 | prevalidator: [{ validator: "[0-3]", cardinality: 1 }] |
---|
| 27 | }, |
---|
| 28 | 'm': { //basic month |
---|
| 29 | validator: "0[1-9]|1[012]", |
---|
| 30 | cardinality: 2, |
---|
| 31 | prevalidator: [{ validator: "[01]", cardinality: 1 }] |
---|
| 32 | }, |
---|
| 33 | 'y': { //basic year |
---|
| 34 | validator: "(19|20)\\d{2}", |
---|
| 35 | cardinality: 4, |
---|
| 36 | prevalidator: [ |
---|
| 37 | { validator: "[12]", cardinality: 1 }, |
---|
| 38 | { validator: "(19|20)", cardinality: 2 }, |
---|
| 39 | { validator: "(19|20)\\d", cardinality: 3 } |
---|
| 40 | ] |
---|
| 41 | } |
---|
| 42 | }); |
---|
| 43 | $.extend($.inputmask.defaults.aliases, { |
---|
| 44 | 'dd/mm/yyyy': { |
---|
| 45 | mask: "1/2/y", |
---|
| 46 | placeholder: "dd/mm/yyyy", |
---|
| 47 | regex: { |
---|
| 48 | val1pre: new RegExp("[0-3]"), //daypre |
---|
| 49 | val1: new RegExp("0[1-9]|[12][0-9]|3[01]"), //day |
---|
| 50 | val2pre: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|[12][0-9]|3[01])" + escapedSeparator + "[01])"); }, //monthpre |
---|
| 51 | val2: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|[12][0-9])" + escapedSeparator + "(0[1-9]|1[012]))|(30" + escapedSeparator + "(0[13-9]|1[012]))|(31" + escapedSeparator + "(0[13578]|1[02]))"); }//month |
---|
| 52 | }, |
---|
| 53 | leapday: "29/02/", |
---|
| 54 | separator: '/', |
---|
| 55 | yearrange: { minyear: 1900, maxyear: 2099 }, |
---|
| 56 | isInYearRange: function (chrs, minyear, maxyear) { |
---|
| 57 | var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))); |
---|
| 58 | var enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length))); |
---|
| 59 | return (enteredyear != NaN ? minyear <= enteredyear && enteredyear <= maxyear : false) || |
---|
| 60 | (enteredyear2 != NaN ? minyear <= enteredyear2 && enteredyear2 <= maxyear : false); |
---|
| 61 | }, |
---|
| 62 | determinebaseyear: function (minyear, maxyear, hint) { |
---|
| 63 | var currentyear = (new Date()).getFullYear(); |
---|
| 64 | if (minyear > currentyear) return minyear; |
---|
| 65 | if (maxyear < currentyear) { |
---|
| 66 | var maxYearPrefix = maxyear.toString().slice(0, 2); |
---|
| 67 | var maxYearPostfix = maxyear.toString().slice(2, 4); |
---|
| 68 | while (maxyear < maxYearPrefix + hint) { |
---|
| 69 | maxYearPrefix--; |
---|
| 70 | } |
---|
| 71 | var maxxYear = maxYearPrefix + maxYearPostfix; |
---|
| 72 | return minyear > maxxYear ? minyear : maxxYear; |
---|
| 73 | } |
---|
| 74 | |
---|
| 75 | return currentyear; |
---|
| 76 | }, |
---|
| 77 | onKeyUp: function (e, buffer, opts) { |
---|
| 78 | var $input = $(this); |
---|
| 79 | if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { |
---|
| 80 | var today = new Date(); |
---|
| 81 | $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()); |
---|
| 82 | } |
---|
| 83 | }, |
---|
| 84 | definitions: { |
---|
| 85 | '1': { //val1 ~ day or month |
---|
| 86 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 87 | var isValid = opts.regex.val1.test(chrs); |
---|
| 88 | if (!strict && !isValid) { |
---|
| 89 | if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { |
---|
| 90 | isValid = opts.regex.val1.test("0" + chrs.charAt(0)); |
---|
| 91 | if (isValid) { |
---|
| 92 | buffer[pos - 1] = "0"; |
---|
| 93 | return { "pos": pos, "c": chrs.charAt(0) }; |
---|
| 94 | } |
---|
| 95 | } |
---|
| 96 | } |
---|
| 97 | return isValid; |
---|
| 98 | }, |
---|
| 99 | cardinality: 2, |
---|
| 100 | prevalidator: [{ |
---|
| 101 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 102 | var isValid = opts.regex.val1pre.test(chrs); |
---|
| 103 | if (!strict && !isValid) { |
---|
| 104 | isValid = opts.regex.val1.test("0" + chrs); |
---|
| 105 | if (isValid) { |
---|
| 106 | buffer[pos] = "0"; |
---|
| 107 | pos++; |
---|
| 108 | return { "pos": pos }; |
---|
| 109 | } |
---|
| 110 | } |
---|
| 111 | return isValid; |
---|
| 112 | }, cardinality: 1 |
---|
| 113 | }] |
---|
| 114 | }, |
---|
| 115 | '2': { //val2 ~ day or month |
---|
| 116 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 117 | var frontValue = buffer.join('').substr(0, 3); |
---|
| 118 | if (frontValue.indexOf(opts.placeholder[0]) != -1) frontValue = "01" + opts.separator; |
---|
| 119 | var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs); |
---|
| 120 | if (!strict && !isValid) { |
---|
| 121 | if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { |
---|
| 122 | isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)); |
---|
| 123 | if (isValid) { |
---|
| 124 | buffer[pos - 1] = "0"; |
---|
| 125 | return { "pos": pos, "c": chrs.charAt(0) }; |
---|
| 126 | } |
---|
| 127 | } |
---|
| 128 | } |
---|
| 129 | return isValid; |
---|
| 130 | }, |
---|
| 131 | cardinality: 2, |
---|
| 132 | prevalidator: [{ |
---|
| 133 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 134 | var frontValue = buffer.join('').substr(0, 3); |
---|
| 135 | if (frontValue.indexOf(opts.placeholder[0]) != -1) frontValue = "01" + opts.separator; |
---|
| 136 | var isValid = opts.regex.val2pre(opts.separator).test(frontValue + chrs); |
---|
| 137 | if (!strict && !isValid) { |
---|
| 138 | isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs); |
---|
| 139 | if (isValid) { |
---|
| 140 | buffer[pos] = "0"; |
---|
| 141 | pos++; |
---|
| 142 | return { "pos": pos }; |
---|
| 143 | } |
---|
| 144 | } |
---|
| 145 | return isValid; |
---|
| 146 | }, cardinality: 1 |
---|
| 147 | }] |
---|
| 148 | }, |
---|
| 149 | 'y': { //year |
---|
| 150 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 151 | if (opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { |
---|
| 152 | var dayMonthValue = buffer.join('').substr(0, 6); |
---|
| 153 | if (dayMonthValue != opts.leapday) |
---|
| 154 | return true; |
---|
| 155 | else { |
---|
| 156 | var year = parseInt(chrs, 10);//detect leap year |
---|
| 157 | if (year % 4 === 0) |
---|
| 158 | if (year % 100 === 0) |
---|
| 159 | if (year % 400 === 0) |
---|
| 160 | return true; |
---|
| 161 | else return false; |
---|
| 162 | else return true; |
---|
| 163 | else return false; |
---|
| 164 | } |
---|
| 165 | } else return false; |
---|
| 166 | }, |
---|
| 167 | cardinality: 4, |
---|
| 168 | prevalidator: [ |
---|
| 169 | { |
---|
| 170 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 171 | var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); |
---|
| 172 | if (!strict && !isValid) { |
---|
| 173 | var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 1); |
---|
| 174 | |
---|
| 175 | isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear); |
---|
| 176 | if (isValid) { |
---|
| 177 | buffer[pos++] = yearPrefix[0]; |
---|
| 178 | return { "pos": pos }; |
---|
| 179 | } |
---|
| 180 | yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2); |
---|
| 181 | |
---|
| 182 | isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear); |
---|
| 183 | if (isValid) { |
---|
| 184 | buffer[pos++] = yearPrefix[0]; |
---|
| 185 | buffer[pos++] = yearPrefix[1]; |
---|
| 186 | return { "pos": pos }; |
---|
| 187 | } |
---|
| 188 | } |
---|
| 189 | return isValid; |
---|
| 190 | }, |
---|
| 191 | cardinality: 1 |
---|
| 192 | }, |
---|
| 193 | { |
---|
| 194 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 195 | var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); |
---|
| 196 | if (!strict && !isValid) { |
---|
| 197 | var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2); |
---|
| 198 | |
---|
| 199 | isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear); |
---|
| 200 | if (isValid) { |
---|
| 201 | buffer[pos++] = yearPrefix[1]; |
---|
| 202 | return { "pos": pos }; |
---|
| 203 | } |
---|
| 204 | |
---|
| 205 | yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2); |
---|
| 206 | if (opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { |
---|
| 207 | var dayMonthValue = buffer.join('').substr(0, 6); |
---|
| 208 | if (dayMonthValue != opts.leapday) |
---|
| 209 | isValid = true; |
---|
| 210 | else { |
---|
| 211 | var year = parseInt(chrs, 10);//detect leap year |
---|
| 212 | if (year % 4 === 0) |
---|
| 213 | if (year % 100 === 0) |
---|
| 214 | if (year % 400 === 0) |
---|
| 215 | isValid = true; |
---|
| 216 | else isValid = false; |
---|
| 217 | else isValid = true; |
---|
| 218 | else isValid = false; |
---|
| 219 | } |
---|
| 220 | } else isValid = false; |
---|
| 221 | if (isValid) { |
---|
| 222 | buffer[pos - 1] = yearPrefix[0]; |
---|
| 223 | buffer[pos++] = yearPrefix[1]; |
---|
| 224 | buffer[pos++] = chrs[0]; |
---|
| 225 | return { "pos": pos }; |
---|
| 226 | } |
---|
| 227 | } |
---|
| 228 | return isValid; |
---|
| 229 | }, cardinality: 2 |
---|
| 230 | }, |
---|
| 231 | { |
---|
| 232 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 233 | return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); |
---|
| 234 | }, cardinality: 3 |
---|
| 235 | } |
---|
| 236 | ] |
---|
| 237 | } |
---|
| 238 | }, |
---|
| 239 | insertMode: false, |
---|
| 240 | autoUnmask: false |
---|
| 241 | }, |
---|
| 242 | 'mm/dd/yyyy': { |
---|
| 243 | placeholder: "mm/dd/yyyy", |
---|
| 244 | alias: "dd/mm/yyyy", //reuse functionality of dd/mm/yyyy alias |
---|
| 245 | regex: { |
---|
| 246 | val2pre: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])"); }, //daypre |
---|
| 247 | val2: function (separator) { var escapedSeparator = $.inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)"); }, //day |
---|
| 248 | val1pre: new RegExp("[01]"), //monthpre |
---|
| 249 | val1: new RegExp("0[1-9]|1[012]") //month |
---|
| 250 | }, |
---|
| 251 | leapday: "02/29/", |
---|
| 252 | onKeyUp: function (e, buffer, opts) { |
---|
| 253 | var $input = $(this); |
---|
| 254 | if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { |
---|
| 255 | var today = new Date(); |
---|
| 256 | $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()); |
---|
| 257 | } |
---|
| 258 | } |
---|
| 259 | }, |
---|
| 260 | 'yyyy/mm/dd': { |
---|
| 261 | mask: "y/1/2", |
---|
| 262 | placeholder: "yyyy/mm/dd", |
---|
| 263 | alias: "mm/dd/yyyy", |
---|
| 264 | leapday: "/02/29", |
---|
| 265 | onKeyUp: function (e, buffer, opts) { |
---|
| 266 | var $input = $(this); |
---|
| 267 | if (e.ctrlKey && e.keyCode == opts.keyCode.RIGHT) { |
---|
| 268 | var today = new Date(); |
---|
| 269 | $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()); |
---|
| 270 | } |
---|
| 271 | }, |
---|
| 272 | definitions: { |
---|
| 273 | '2': { //val2 ~ day or month |
---|
| 274 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 275 | var frontValue = buffer.join('').substr(5, 3); |
---|
| 276 | if (frontValue.indexOf(opts.placeholder[5]) != -1) frontValue = "01" + opts.separator; |
---|
| 277 | var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs); |
---|
| 278 | if (!strict && !isValid) { |
---|
| 279 | if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) { |
---|
| 280 | isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)); |
---|
| 281 | if (isValid) { |
---|
| 282 | buffer[pos - 1] = "0"; |
---|
| 283 | return { "pos": pos, "c": chrs.charAt(0) }; |
---|
| 284 | } |
---|
| 285 | } |
---|
| 286 | } |
---|
| 287 | |
---|
| 288 | //check leap yeap |
---|
| 289 | if (isValid) { |
---|
| 290 | var dayMonthValue = buffer.join('').substr(4, 4) + chrs; |
---|
| 291 | if (dayMonthValue != opts.leapday) |
---|
| 292 | return true; |
---|
| 293 | else { |
---|
| 294 | var year = parseInt(buffer.join('').substr(0, 4), 10); //detect leap year |
---|
| 295 | if (year % 4 === 0) |
---|
| 296 | if (year % 100 === 0) |
---|
| 297 | if (year % 400 === 0) |
---|
| 298 | return true; |
---|
| 299 | else return false; |
---|
| 300 | else return true; |
---|
| 301 | else return false; |
---|
| 302 | } |
---|
| 303 | } |
---|
| 304 | |
---|
| 305 | return isValid; |
---|
| 306 | }, |
---|
| 307 | cardinality: 2, |
---|
| 308 | prevalidator: [{ |
---|
| 309 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 310 | var frontValue = buffer.join('').substr(5, 3); |
---|
| 311 | if (frontValue.indexOf(opts.placeholder[5]) != -1) frontValue = "01" + opts.separator; |
---|
| 312 | var isValid = opts.regex.val2pre(opts.separator).test(frontValue + chrs); |
---|
| 313 | if (!strict && !isValid) { |
---|
| 314 | isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs); |
---|
| 315 | if (isValid) { |
---|
| 316 | buffer[pos] = "0"; |
---|
| 317 | pos++; |
---|
| 318 | return { "pos": pos }; |
---|
| 319 | } |
---|
| 320 | } |
---|
| 321 | return isValid; |
---|
| 322 | }, cardinality: 1 |
---|
| 323 | }] |
---|
| 324 | } |
---|
| 325 | } |
---|
| 326 | }, |
---|
| 327 | 'dd.mm.yyyy': { |
---|
| 328 | mask: "1.2.y", |
---|
| 329 | placeholder: "dd.mm.yyyy", |
---|
| 330 | leapday: "29.02.", |
---|
| 331 | separator: '.', |
---|
| 332 | alias: "dd/mm/yyyy" |
---|
| 333 | }, |
---|
| 334 | 'dd-mm-yyyy': { |
---|
| 335 | mask: "1-2-y", |
---|
| 336 | placeholder: "dd-mm-yyyy", |
---|
| 337 | leapday: "29-02-", |
---|
| 338 | separator: '-', |
---|
| 339 | alias: "dd/mm/yyyy" |
---|
| 340 | }, |
---|
| 341 | 'mm.dd.yyyy': { |
---|
| 342 | mask: "1.2.y", |
---|
| 343 | placeholder: "mm.dd.yyyy", |
---|
| 344 | leapday: "02.29.", |
---|
| 345 | separator: '.', |
---|
| 346 | alias: "mm/dd/yyyy" |
---|
| 347 | }, |
---|
| 348 | 'mm-dd-yyyy': { |
---|
| 349 | mask: "1-2-y", |
---|
| 350 | placeholder: "mm-dd-yyyy", |
---|
| 351 | leapday: "02-29-", |
---|
| 352 | separator: '-', |
---|
| 353 | alias: "mm/dd/yyyy" |
---|
| 354 | }, |
---|
| 355 | 'yyyy.mm.dd': { |
---|
| 356 | mask: "y.1.2", |
---|
| 357 | placeholder: "yyyy.mm.dd", |
---|
| 358 | leapday: ".02.29", |
---|
| 359 | separator: '.', |
---|
| 360 | alias: "yyyy/mm/dd" |
---|
| 361 | }, |
---|
| 362 | 'yyyy-mm-dd': { |
---|
| 363 | mask: "y-1-2", |
---|
| 364 | placeholder: "yyyy-mm-dd", |
---|
| 365 | leapday: "-02-29", |
---|
| 366 | separator: '-', |
---|
| 367 | alias: "yyyy/mm/dd" |
---|
| 368 | }, |
---|
| 369 | 'datetime': { |
---|
| 370 | mask: "1/2/y h:s", |
---|
| 371 | placeholder: "dd/mm/yyyy hh:mm", |
---|
| 372 | alias: "dd/mm/yyyy", |
---|
| 373 | regex: { |
---|
| 374 | hrspre: new RegExp("[012]"), //hours pre |
---|
| 375 | hrs24: new RegExp("2[0-9]|1[3-9]"), |
---|
| 376 | hrs: new RegExp("[01][0-9]|2[0-3]"), //hours |
---|
| 377 | ampm: new RegExp("^[a|p|A|P][m|M]") |
---|
| 378 | }, |
---|
| 379 | timeseparator: ':', |
---|
| 380 | hourFormat: "24", // or 12 |
---|
| 381 | definitions: { |
---|
| 382 | 'h': { //hours |
---|
| 383 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 384 | var isValid = opts.regex.hrs.test(chrs); |
---|
| 385 | if (!strict && !isValid) { |
---|
| 386 | if (chrs.charAt(1) == opts.timeseparator || "-.:".indexOf(chrs.charAt(1)) != -1) { |
---|
| 387 | isValid = opts.regex.hrs.test("0" + chrs.charAt(0)); |
---|
| 388 | if (isValid) { |
---|
| 389 | buffer[pos - 1] = "0"; |
---|
| 390 | buffer[pos] = chrs.charAt(0); |
---|
| 391 | pos++; |
---|
| 392 | return { "pos": pos }; |
---|
| 393 | } |
---|
| 394 | } |
---|
| 395 | } |
---|
| 396 | |
---|
| 397 | if (isValid && opts.hourFormat !== "24" && opts.regex.hrs24.test(chrs)) { |
---|
| 398 | |
---|
| 399 | var tmp = parseInt(chrs, 10); |
---|
| 400 | |
---|
| 401 | if (tmp == 24) { |
---|
| 402 | buffer[pos + 5] = "a"; |
---|
| 403 | buffer[pos + 6] = "m"; |
---|
| 404 | } else { |
---|
| 405 | buffer[pos + 5] = "p"; |
---|
| 406 | buffer[pos + 6] = "m"; |
---|
| 407 | } |
---|
| 408 | |
---|
| 409 | tmp = tmp - 12; |
---|
| 410 | |
---|
| 411 | if (tmp < 10) { |
---|
| 412 | buffer[pos] = tmp.toString(); |
---|
| 413 | buffer[pos - 1] = "0"; |
---|
| 414 | } else { |
---|
| 415 | buffer[pos] = tmp.toString().charAt(1); |
---|
| 416 | buffer[pos - 1] = tmp.toString().charAt(0); |
---|
| 417 | } |
---|
| 418 | |
---|
| 419 | return { "pos": pos, "c": buffer[pos] }; |
---|
| 420 | } |
---|
| 421 | |
---|
| 422 | return isValid; |
---|
| 423 | }, |
---|
| 424 | cardinality: 2, |
---|
| 425 | prevalidator: [{ |
---|
| 426 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 427 | var isValid = opts.regex.hrspre.test(chrs); |
---|
| 428 | if (!strict && !isValid) { |
---|
| 429 | isValid = opts.regex.hrs.test("0" + chrs); |
---|
| 430 | if (isValid) { |
---|
| 431 | buffer[pos] = "0"; |
---|
| 432 | pos++; |
---|
| 433 | return { "pos": pos }; |
---|
| 434 | } |
---|
| 435 | } |
---|
| 436 | return isValid; |
---|
| 437 | }, cardinality: 1 |
---|
| 438 | }] |
---|
| 439 | }, |
---|
| 440 | 't': { //am/pm |
---|
| 441 | validator: function (chrs, buffer, pos, strict, opts) { |
---|
| 442 | return opts.regex.ampm.test(chrs + "m"); |
---|
| 443 | }, |
---|
| 444 | casing: "lower", |
---|
| 445 | cardinality: 1 |
---|
| 446 | } |
---|
| 447 | }, |
---|
| 448 | insertMode: false, |
---|
| 449 | autoUnmask: false |
---|
| 450 | }, |
---|
| 451 | 'datetime12': { |
---|
| 452 | mask: "1/2/y h:s t\\m", |
---|
| 453 | placeholder: "dd/mm/yyyy hh:mm xm", |
---|
| 454 | alias: "datetime", |
---|
| 455 | hourFormat: "12" |
---|
| 456 | }, |
---|
| 457 | 'hh:mm t': { |
---|
| 458 | mask: "h:s t\\m", |
---|
| 459 | placeholder: "hh:mm xm", |
---|
| 460 | alias: "datetime", |
---|
| 461 | hourFormat: "12" |
---|
| 462 | }, |
---|
| 463 | 'h:s t': { |
---|
| 464 | mask: "h:s t\\m", |
---|
| 465 | placeholder: "hh:mm xm", |
---|
| 466 | alias: "datetime", |
---|
| 467 | hourFormat: "12" |
---|
| 468 | }, |
---|
| 469 | 'hh:mm:ss': { |
---|
| 470 | mask: "h:s:s", |
---|
| 471 | autoUnmask: false |
---|
| 472 | }, |
---|
| 473 | 'hh:mm': { |
---|
| 474 | mask: "h:s", |
---|
| 475 | autoUnmask: false |
---|
| 476 | }, |
---|
| 477 | 'date': { |
---|
| 478 | alias: "dd/mm/yyyy" // "mm/dd/yyyy" |
---|
| 479 | }, |
---|
| 480 | 'mm/yyyy': { |
---|
| 481 | mask: "1/y", |
---|
| 482 | placeholder: "mm/yyyy", |
---|
| 483 | leapday: "donotuse", |
---|
| 484 | separator: '/', |
---|
| 485 | alias: "mm/dd/yyyy" |
---|
| 486 | } |
---|
| 487 | }); |
---|
| 488 | })(jQuery); |
---|