From 191f9ca1be14e2e010ddaf45d094358e887b9ad9 Mon Sep 17 00:00:00 2001 From: "huan086@gmail.com" Date: Mon, 7 Nov 2016 14:36:08 +0800 Subject: [PATCH] Partially reverted https://github.com/ansman/validate.js/commit/bebe88ed9a40c38a37f44611650b68710e85cee1 to allow "" but reject whitespace, for all validators except equality. --- specs/validators/datetime-spec.js | 4 ++-- specs/validators/email-spec.js | 2 +- specs/validators/exclusion-spec.js | 2 +- specs/validators/format-spec.js | 4 ++-- specs/validators/inclusion-spec.js | 2 +- specs/validators/length-spec.js | 2 +- specs/validators/numericality-spec.js | 2 +- specs/validators/url-spec.js | 2 +- validate.js | 28 +++++++++++++++++---------- validate.min.js | 2 +- validate.min.map | 2 +- 11 files changed, 30 insertions(+), 22 deletions(-) diff --git a/specs/validators/datetime-spec.js b/specs/validators/datetime-spec.js index edd948d..23aff38 100644 --- a/specs/validators/datetime-spec.js +++ b/specs/validators/datetime-spec.js @@ -44,11 +44,12 @@ describe('validators.datetime', function() { expect(function() { datetime(null, {}); }).not.toThrow(); }); - it("allows undefined values", function() { + it("allows empty values", function() { spyOn(validate.validators.datetime, "parse"); spyOn(validate.validators.datetime, "format"); expect(datetime(null, {})).not.toBeDefined(); expect(datetime(undefined, {})).not.toBeDefined(); + expect(datetime("", {})).not.toBeDefined(); expect(validate.validators.datetime.parse).not.toHaveBeenCalled(); expect(validate.validators.datetime.format).not.toHaveBeenCalled(); }); @@ -60,7 +61,6 @@ describe('validators.datetime', function() { it("doesn't allow invalid dates", function() { var expected = "must be a valid date"; expect(datetime("foobar", {})).toEqual(expected); - expect(datetime("", {})).toEqual(expected); expect(datetime(" ", {})).toEqual(expected); }); diff --git a/specs/validators/email-spec.js b/specs/validators/email-spec.js index cc18032..cd8fbb8 100644 --- a/specs/validators/email-spec.js +++ b/specs/validators/email-spec.js @@ -10,6 +10,7 @@ describe('validators.email', function() { it("allows empty values", function() { expect(email(null, {})).not.toBeDefined(); expect(email(undefined, {})).not.toBeDefined(); + expect(email("", {})).not.toBeDefined(); }); it("doesn't allow non strings", function() { @@ -32,7 +33,6 @@ describe('validators.email', function() { it("doesn't allow 'invalid' emails", function() { var expected = "is not a valid email"; - expect(email("", {})).toEqual(expected); expect(email(" ", {})).toEqual(expected); expect(email("foobar", {})).toEqual(expected); expect(email("foo@bar", {})).toEqual(expected); diff --git a/specs/validators/exclusion-spec.js b/specs/validators/exclusion-spec.js index a1af319..8866ffe 100644 --- a/specs/validators/exclusion-spec.js +++ b/specs/validators/exclusion-spec.js @@ -10,11 +10,11 @@ describe("validators.exclusion", function() { it("allows empty values", function() { expect(exclusion(null, {})).not.toBeDefined(); expect(exclusion(undefined, {})).not.toBeDefined(); + expect(exclusion("", {})).not.toBeDefined(); }); it("returns nothing if the value is allowed", function() { var opts = {within: within}; - expect(exclusion("", {})).not.toBeDefined(); expect(exclusion(" ", {})).not.toBeDefined(); expect(exclusion("quux", opts)).not.toBeDefined(); expect(exclusion(false, opts)).not.toBeDefined(); diff --git a/specs/validators/format-spec.js b/specs/validators/format-spec.js index 0551e2d..46c7fee 100644 --- a/specs/validators/format-spec.js +++ b/specs/validators/format-spec.js @@ -13,6 +13,8 @@ describe("validators.format", function() { expect(format(null, options2)).not.toBeDefined(); expect(format(undefined, options1)).not.toBeDefined(); expect(format(undefined, options2)).not.toBeDefined(); + expect(format("", options1)).not.toBeDefined(); + expect(format("", options2)).not.toBeDefined(); }); it("allows values that matches the pattern", function() { @@ -21,8 +23,6 @@ describe("validators.format", function() { }); it("doesn't allow values that doesn't matches the pattern", function() { - expect(format("", options1)).toBeDefined("is invalid"); - expect(format("", options2)).toBeDefined("is invalid"); expect(format(" ", options1)).toBeDefined("is invalid"); expect(format(" ", options2)).toBeDefined("is invalid"); expect(format("barfoo", options1)).toEqual("is invalid"); diff --git a/specs/validators/inclusion-spec.js b/specs/validators/inclusion-spec.js index 950280d..e21eb2c 100644 --- a/specs/validators/inclusion-spec.js +++ b/specs/validators/inclusion-spec.js @@ -10,6 +10,7 @@ describe("validators.inclusion", function() { it("allows empty values", function() { expect(inclusion(null, {})).not.toBeDefined(); expect(inclusion(undefined, {})).not.toBeDefined(); + expect(inclusion("", {})).not.toBeDefined(); }); it("returns nothing if the value is allowed", function() { @@ -21,7 +22,6 @@ describe("validators.inclusion", function() { it("returns an error if the value is not included", function() { var opts = {within: within}; - expect(inclusion("", {})).toBeDefined(); expect(inclusion(" ", {})).toBeDefined(); expect(inclusion("quux", opts)).toEqual("^quux is not included in the list"); expect(inclusion(false, opts)).toEqual("^false is not included in the list"); diff --git a/specs/validators/length-spec.js b/specs/validators/length-spec.js index eb8b916..9b712ce 100644 --- a/specs/validators/length-spec.js +++ b/specs/validators/length-spec.js @@ -83,6 +83,7 @@ describe('validator.length', function() { var options = {is: 10, minimum: 20, maximum: 5}; expect(length(null, options)).not.toBeDefined(); expect(length(undefined, options)).not.toBeDefined(); + expect(length("", options)).not.toBeDefined(); }); it("refuses values without a numeric length property", function() { @@ -108,7 +109,6 @@ describe('validator.length', function() { }; expect(length({length: 9}, options)).toHaveLength(3); expect(length("foobar", options)).toHaveLength(3); - expect(length("", options)).toHaveLength(2); expect(length(" ", options)).toHaveLength(2); }); diff --git a/specs/validators/numericality-spec.js b/specs/validators/numericality-spec.js index 4a127a2..be90f55 100644 --- a/specs/validators/numericality-spec.js +++ b/specs/validators/numericality-spec.js @@ -21,6 +21,7 @@ describe("validators.numericality", function() { it("allows empty values", function() { expect(numericality(null, {})).not.toBeDefined(); expect(numericality(undefined, {})).not.toBeDefined(); + expect(numericality("", {})).not.toBeDefined(); }); it("allows numbers", function() { @@ -30,7 +31,6 @@ describe("validators.numericality", function() { it("doesn't allow non numbers", function() { var e = "is not a number"; - expect(numericality("", {})).toEqual(e); expect(numericality(" ", {})).toEqual(e); expect(numericality("foo", {})).toEqual(e); expect(numericality(NaN, {})).toEqual(e); diff --git a/specs/validators/url-spec.js b/specs/validators/url-spec.js index eefb9df..dc0153b 100644 --- a/specs/validators/url-spec.js +++ b/specs/validators/url-spec.js @@ -10,6 +10,7 @@ describe("validators.url", function() { it("allows empty values", function() { expect(url(null, {})).not.toBeDefined(); expect(url(undefined, {})).not.toBeDefined(); + expect(url("", {})).not.toBeDefined(); }); it("doesn't allow non strings", function() { @@ -21,7 +22,6 @@ describe("validators.url", function() { it("doesn't allow 'invalid' urls", function() { var expected = "is not a valid url"; - expect(url("", {})).toBeDefined(); expect(url(" ", {})).toBeDefined(); expect(url("http://", {})).toBeDefined(); expect(url("http://.", {})).toBeDefined(); diff --git a/validate.js b/validate.js index 9d470c4..63764cc 100644 --- a/validate.js +++ b/validate.js @@ -311,9 +311,13 @@ } }, - isEmpty: function(value) { + isEmpty: function(value, treatWhitespaceAsEmpty) { var attr; + if (treatWhitespaceAsEmpty === undefined) { + treatWhitespaceAsEmpty = true; + } + // Null and undefined are empty if (!v.isDefined(value)) { return true; @@ -326,7 +330,11 @@ // Whitespace only strings are empty if (v.isString(value)) { - return v.EMPTY_STRING_REGEXP.test(value); + if (treatWhitespaceAsEmpty) { + return v.EMPTY_STRING_REGEXP.test(value); + } + + return value === ""; } // For arrays we use the length property @@ -770,7 +778,7 @@ }, length: function(value, options, attribute) { // Empty values are allowed - if (!v.isDefined(value)) { + if (v.isEmpty(value, false)) { return; } @@ -818,7 +826,7 @@ }, numericality: function(value, options) { // Empty values are fine - if (!v.isDefined(value)) { + if (v.isEmpty(value, false)) { return; } @@ -919,7 +927,7 @@ } // Empty values are fine - if (!v.isDefined(value)) { + if (v.isEmpty(value, false)) { return; } @@ -989,7 +997,7 @@ , match; // Empty values are allowed - if (!v.isDefined(value)) { + if (v.isEmpty(value, false)) { return; } if (!v.isString(value)) { @@ -1006,7 +1014,7 @@ }, inclusion: function(value, options) { // Empty values are fine - if (!v.isDefined(value)) { + if (v.isEmpty(value, false)) { return; } if (v.isArray(options)) { @@ -1023,7 +1031,7 @@ }, exclusion: function(value, options) { // Empty values are fine - if (!v.isDefined(value)) { + if (v.isEmpty(value, false)) { return; } if (v.isArray(options)) { @@ -1040,7 +1048,7 @@ options = v.extend({}, this.options, options); var message = options.message || this.message || "is not a valid email"; // Empty values are fine - if (!v.isDefined(value)) { + if (v.isEmpty(value, false)) { return; } if (!v.isString(value)) { @@ -1082,7 +1090,7 @@ // A URL validator that is used to validate URLs with the ability to // restrict schemes and some domains. url: function(value, options) { - if (!v.isDefined(value)) { + if (v.isEmpty(value, false)) { return; } diff --git a/validate.min.js b/validate.min.js index d101b60..bf9fe82 100644 --- a/validate.min.js +++ b/validate.min.js @@ -5,5 +5,5 @@ * validate.js may be freely distributed under the MIT license. */ -(function(a,b,c){"use strict";var d=function(a,b,c){c=e.extend({},e.options,c);var f,g,h=e.runValidations(a,b,c);for(f in h)for(g in h[f])if(e.isPromise(h[f][g]))throw new Error("Use validate.async if you want support for promises");return d.processValidationResults(h,c)},e=d;e.extend=function(a){return[].slice.call(arguments,1).forEach(function(b){for(var c in b)a[c]=b[c]}),a},e.extend(d,{version:{major:0,minor:11,patch:1,metadata:null,toString:function(){var a=e.format("%{major}.%{minor}.%{patch}",e.version);return e.isEmpty(e.version.metadata)||(a+="+"+e.version.metadata),a}},Promise:"undefined"!=typeof Promise?Promise:null,EMPTY_STRING_REGEXP:/^\s*$/,runValidations:function(a,b,c){var d,f,g,h,i,j,k,l=[];(e.isDomElement(a)||e.isJqueryElement(a))&&(a=e.collectFormValues(a));for(d in b){g=e.getDeepObjectValue(a,d),h=e.result(b[d],g,a,d,c,b);for(f in h){if(i=e.validators[f],!i)throw k=e.format("Unknown validator %{name}",{name:f}),new Error(k);j=h[f],j=e.result(j,g,a,d,c,b),j&&l.push({attribute:d,value:g,validator:f,globalOptions:c,attributes:a,options:j,error:i.call(i,g,j,d,a,c)})}}return l},processValidationResults:function(a,b){a=e.pruneEmptyErrors(a,b),a=e.expandMultipleErrors(a,b),a=e.convertErrorMessages(a,b);var c=b.format||"grouped";if("function"!=typeof e.formatters[c])throw new Error(e.format("Unknown format %{format}",b));return a=e.formatters[c](a),e.isEmpty(a)?void 0:a},async:function(a,b,c){c=e.extend({},e.async.options,c);var d=c.wrapErrors||function(a){return a};c.cleanAttributes!==!1&&(a=e.cleanAttributes(a,b));var f=e.runValidations(a,b,c);return new e.Promise(function(g,h){e.waitForResults(f).then(function(){var i=e.processValidationResults(f,c);i?h(new d(i,c,a,b)):g(a)},function(a){h(a)})})},single:function(a,b,c){return c=e.extend({},e.single.options,c,{format:"flat",fullMessages:!1}),e({single:a},{single:b},c)},waitForResults:function(a){return a.reduce(function(a,b){return e.isPromise(b.error)?a.then(function(){return b.error.then(function(a){b.error=a||null})}):a},new e.Promise(function(a){a()}))},result:function(a){var b=[].slice.call(arguments,1);return"function"==typeof a&&(a=a.apply(null,b)),a},isNumber:function(a){return"number"==typeof a&&!isNaN(a)},isFunction:function(a){return"function"==typeof a},isInteger:function(a){return e.isNumber(a)&&a%1===0},isBoolean:function(a){return"boolean"==typeof a},isObject:function(a){return a===Object(a)},isDate:function(a){return a instanceof Date},isDefined:function(a){return null!==a&&void 0!==a},isPromise:function(a){return!!a&&e.isFunction(a.then)},isJqueryElement:function(a){return a&&e.isString(a.jquery)},isDomElement:function(a){return a&&a.querySelectorAll&&a.querySelector?e.isObject(document)&&a===document?!0:"object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&null!==a&&1===a.nodeType&&"string"==typeof a.nodeName:!1},isEmpty:function(a){var b;if(!e.isDefined(a))return!0;if(e.isFunction(a))return!1;if(e.isString(a))return e.EMPTY_STRING_REGEXP.test(a);if(e.isArray(a))return 0===a.length;if(e.isDate(a))return!1;if(e.isObject(a)){for(b in a)return!1;return!0}return!1},format:e.extend(function(a,b){return e.isString(a)?a.replace(e.format.FORMAT_REGEXP,function(a,c,d){return"%"===c?"%{"+d+"}":String(b[d])}):a},{FORMAT_REGEXP:/(%?)%\{([^\}]+)\}/g}),prettify:function(a){return e.isNumber(a)?100*a%1===0?""+a:parseFloat(Math.round(100*a)/100).toFixed(2):e.isArray(a)?a.map(function(a){return e.prettify(a)}).join(", "):e.isObject(a)?a.toString():(a=""+a,a.replace(/([^\s])\.([^\s])/g,"$1 $2").replace(/\\+/g,"").replace(/[_-]/g," ").replace(/([a-z])([A-Z])/g,function(a,b,c){return""+b+" "+c.toLowerCase()}).toLowerCase())},stringifyValue:function(a){return e.prettify(a)},isString:function(a){return"string"==typeof a},isArray:function(a){return"[object Array]"==={}.toString.call(a)},isHash:function(a){return e.isObject(a)&&!e.isArray(a)&&!e.isFunction(a)},contains:function(a,b){return e.isDefined(a)?e.isArray(a)?-1!==a.indexOf(b):b in a:!1},unique:function(a){return e.isArray(a)?a.filter(function(a,b,c){return c.indexOf(a)==b}):a},forEachKeyInKeypath:function(a,b,c){if(e.isString(b)){var d,f="",g=!1;for(d=0;dk&&(d=b.tooShort||this.tooShort||"is too short (minimum is %{count} characters)",j.push(e.format(d,{count:h}))),e.isNumber(g)&&k>g&&(d=b.tooLong||this.tooLong||"is too long (maximum is %{count} characters)",j.push(e.format(d,{count:g}))),j.length>0?b.message||j:void 0):(e.error(e.format("Attribute %{attr} has a non numeric value for `length`",{attr:c})),b.message||this.notValid||"has an incorrect length")}},numericality:function(a,b){if(e.isDefined(a)){b=e.extend({},this.options,b);var c,d,f=[],g={greaterThan:function(a,b){return a>b},greaterThanOrEqualTo:function(a,b){return a>=b},equalTo:function(a,b){return a===b},lessThan:function(a,b){return b>a},lessThanOrEqualTo:function(a,b){return b>=a},divisibleBy:function(a,b){return a%b===0}};if(e.isString(a)&&b.strict){var h="^(0|[1-9]\\d*)";if(b.onlyInteger||(h+="(\\.\\d+)?"),h+="$",!new RegExp(h).test(a))return b.message||b.notValid||this.notValid||this.message||"must be a valid number"}if(b.noStrings!==!0&&e.isString(a)&&!e.isEmpty(a)&&(a=+a),!e.isNumber(a))return b.message||b.notValid||this.notValid||this.message||"is not a number";if(b.onlyInteger&&!e.isInteger(a))return b.message||b.notInteger||this.notInteger||this.message||"must be an integer";for(c in g)if(d=b[c],e.isNumber(d)&&!g[c](a,d)){var i="not"+e.capitalize(c),j=b[i]||this[i]||this.message||"must be %{type} %{count}";f.push(e.format(j,{count:d,type:e.prettify(c)}))}return b.odd&&a%2!==1&&f.push(b.notOdd||this.notOdd||this.message||"must be odd"),b.even&&a%2!==0&&f.push(b.notEven||this.notEven||this.message||"must be even"),f.length?b.message||f:void 0}},datetime:e.extend(function(a,b){if(!e.isFunction(this.parse)||!e.isFunction(this.format))throw new Error("Both the parse and format functions needs to be set to use the datetime/date validator");if(e.isDefined(a)){b=e.extend({},this.options,b);var c,d=[],f=b.earliest?this.parse(b.earliest,b):NaN,g=b.latest?this.parse(b.latest,b):NaN;return a=this.parse(a,b),isNaN(a)||b.dateOnly&&a%864e5!==0?(c=b.notValid||b.message||this.notValid||"must be a valid date",e.format(c,{value:arguments[0]})):(!isNaN(f)&&f>a&&(c=b.tooEarly||b.message||this.tooEarly||"must be no earlier than %{date}",c=e.format(c,{value:this.format(a,b),date:this.format(f,b)}),d.push(c)),!isNaN(g)&&a>g&&(c=b.tooLate||b.message||this.tooLate||"must be no later than %{date}",c=e.format(c,{date:this.format(g,b),value:this.format(a,b)}),d.push(c)),d.length?e.unique(d):void 0)}},{parse:null,format:null}),date:function(a,b){return b=e.extend({},b,{dateOnly:!0}),e.validators.datetime.call(e.validators.datetime,a,b)},format:function(a,b){(e.isString(b)||b instanceof RegExp)&&(b={pattern:b}),b=e.extend({},this.options,b);var c,d=b.message||this.message||"is invalid",f=b.pattern;return e.isDefined(a)?e.isString(a)?(e.isString(f)&&(f=new RegExp(b.pattern,b.flags)),c=f.exec(a),c&&c[0].length==a.length?void 0:d):d:void 0},inclusion:function(a,b){if(e.isDefined(a)&&(e.isArray(b)&&(b={within:b}),b=e.extend({},this.options,b),!e.contains(b.within,a))){var c=b.message||this.message||"^%{value} is not included in the list";return e.format(c,{value:a})}},exclusion:function(a,b){if(e.isDefined(a)&&(e.isArray(b)&&(b={within:b}),b=e.extend({},this.options,b),e.contains(b.within,a))){var c=b.message||this.message||"^%{value} is restricted";return e.format(c,{value:a})}},email:e.extend(function(a,b){b=e.extend({},this.options,b);var c=b.message||this.message||"is not a valid email";if(e.isDefined(a))return e.isString(a)&&this.PATTERN.exec(a)?void 0:c},{PATTERN:/^[a-z0-9\u007F-\uffff!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9\u007F-\uffff!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,}$/i}),equality:function(a,b,c,d){if(e.isDefined(a)){e.isString(b)&&(b={attribute:b}),b=e.extend({},this.options,b);var f=b.message||this.message||"is not equal to %{attribute}";if(e.isEmpty(b.attribute)||!e.isString(b.attribute))throw new Error("The attribute must be a non empty string");var g=e.getDeepObjectValue(d,b.attribute),h=b.comparator||function(a,b){return a===b};return h(a,g,b,c,d)?void 0:e.format(f,{attribute:e.prettify(b.attribute)})}},url:function(a,b){if(e.isDefined(a)){b=e.extend({},this.options,b);var c=b.message||this.message||"is not a valid url",d=b.schemes||this.schemes||["http","https"],f=b.allowLocal||this.allowLocal||!1;if(!e.isString(a))return c;var g="^(?:(?:"+d.join("|")+")://)(?:\\S+(?::\\S*)?@)?(?:",h="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))";f?h+="?":g+="(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})",g+="(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*"+h+")(?::\\d{2,5})?(?:[/?#]\\S*)?$";var i=new RegExp(g,"i");return i.exec(a)?void 0:c}}},d.formatters={detailed:function(a){return a},flat:e.flattenErrorsToArray,grouped:function(a){var b;a=e.groupErrorsByAttribute(a);for(b in a)a[b]=e.flattenErrorsToArray(a[b]);return a},constraint:function(a){var b;a=e.groupErrorsByAttribute(a);for(b in a)a[b]=a[b].map(function(a){return a.validator}).sort();return a}},d.exposeModule(d,this,a,b,c)}).call(this,"undefined"!=typeof exports?exports:null,"undefined"!=typeof module?module:null,"undefined"!=typeof define?define:null); +(function(a,b,c){"use strict";var d=function(a,b,c){c=e.extend({},e.options,c);var f,g,h=e.runValidations(a,b,c);for(f in h)for(g in h[f])if(e.isPromise(h[f][g]))throw new Error("Use validate.async if you want support for promises");return d.processValidationResults(h,c)},e=d;e.extend=function(a){return[].slice.call(arguments,1).forEach(function(b){for(var c in b)a[c]=b[c]}),a},e.extend(d,{version:{major:0,minor:11,patch:1,metadata:"development",toString:function(){var a=e.format("%{major}.%{minor}.%{patch}",e.version);return e.isEmpty(e.version.metadata)||(a+="+"+e.version.metadata),a}},Promise:"undefined"!=typeof Promise?Promise:null,EMPTY_STRING_REGEXP:/^\s*$/,runValidations:function(a,b,c){var d,f,g,h,i,j,k,l=[];(e.isDomElement(a)||e.isJqueryElement(a))&&(a=e.collectFormValues(a));for(d in b){g=e.getDeepObjectValue(a,d),h=e.result(b[d],g,a,d,c,b);for(f in h){if(i=e.validators[f],!i)throw k=e.format("Unknown validator %{name}",{name:f}),new Error(k);j=h[f],j=e.result(j,g,a,d,c,b),j&&l.push({attribute:d,value:g,validator:f,globalOptions:c,attributes:a,options:j,error:i.call(i,g,j,d,a,c)})}}return l},processValidationResults:function(a,b){a=e.pruneEmptyErrors(a,b),a=e.expandMultipleErrors(a,b),a=e.convertErrorMessages(a,b);var c=b.format||"grouped";if("function"!=typeof e.formatters[c])throw new Error(e.format("Unknown format %{format}",b));return a=e.formatters[c](a),e.isEmpty(a)?void 0:a},async:function(a,b,c){c=e.extend({},e.async.options,c);var d=c.wrapErrors||function(a){return a};c.cleanAttributes!==!1&&(a=e.cleanAttributes(a,b));var f=e.runValidations(a,b,c);return new e.Promise(function(g,h){e.waitForResults(f).then(function(){var i=e.processValidationResults(f,c);i?h(new d(i,c,a,b)):g(a)},function(a){h(a)})})},single:function(a,b,c){return c=e.extend({},e.single.options,c,{format:"flat",fullMessages:!1}),e({single:a},{single:b},c)},waitForResults:function(a){return a.reduce(function(a,b){return e.isPromise(b.error)?a.then(function(){return b.error.then(function(a){b.error=a||null})}):a},new e.Promise(function(a){a()}))},result:function(a){var b=[].slice.call(arguments,1);return"function"==typeof a&&(a=a.apply(null,b)),a},isNumber:function(a){return"number"==typeof a&&!isNaN(a)},isFunction:function(a){return"function"==typeof a},isInteger:function(a){return e.isNumber(a)&&a%1===0},isBoolean:function(a){return"boolean"==typeof a},isObject:function(a){return a===Object(a)},isDate:function(a){return a instanceof Date},isDefined:function(a){return null!==a&&void 0!==a},isPromise:function(a){return!!a&&e.isFunction(a.then)},isJqueryElement:function(a){return a&&e.isString(a.jquery)},isDomElement:function(a){return!!a&&(!(!a.querySelectorAll||!a.querySelector)&&(!(!e.isObject(document)||a!==document)||("object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&null!==a&&1===a.nodeType&&"string"==typeof a.nodeName)))},isEmpty:function(a,b){var c;if(void 0===b&&(b=!0),!e.isDefined(a))return!0;if(e.isFunction(a))return!1;if(e.isString(a))return b?e.EMPTY_STRING_REGEXP.test(a):""===a;if(e.isArray(a))return 0===a.length;if(e.isDate(a))return!1;if(e.isObject(a)){for(c in a)return!1;return!0}return!1},format:e.extend(function(a,b){return e.isString(a)?a.replace(e.format.FORMAT_REGEXP,function(a,c,d){return"%"===c?"%{"+d+"}":String(b[d])}):a},{FORMAT_REGEXP:/(%?)%\{([^\}]+)\}/g}),prettify:function(a){return e.isNumber(a)?100*a%1===0?""+a:parseFloat(Math.round(100*a)/100).toFixed(2):e.isArray(a)?a.map(function(a){return e.prettify(a)}).join(", "):e.isObject(a)?a.toString():(a=""+a,a.replace(/([^\s])\.([^\s])/g,"$1 $2").replace(/\\+/g,"").replace(/[_-]/g," ").replace(/([a-z])([A-Z])/g,function(a,b,c){return""+b+" "+c.toLowerCase()}).toLowerCase())},stringifyValue:function(a){return e.prettify(a)},isString:function(a){return"string"==typeof a},isArray:function(a){return"[object Array]"==={}.toString.call(a)},isHash:function(a){return e.isObject(a)&&!e.isArray(a)&&!e.isFunction(a)},contains:function(a,b){return!!e.isDefined(a)&&(e.isArray(a)?a.indexOf(b)!==-1:b in a)},unique:function(a){return e.isArray(a)?a.filter(function(a,b,c){return c.indexOf(a)==b}):a},forEachKeyInKeypath:function(a,b,c){if(e.isString(b)){var d,f="",g=!1;for(d=0;dg&&(d=b.tooLong||this.tooLong||"is too long (maximum is %{count} characters)",j.push(e.format(d,{count:g}))),j.length>0?b.message||j:void 0):(e.error(e.format("Attribute %{attr} has a non numeric value for `length`",{attr:c})),b.message||this.notValid||"has an incorrect length")}},numericality:function(a,b){if(!e.isEmpty(a,!1)){b=e.extend({},this.options,b);var c,d,f=[],g={greaterThan:function(a,b){return a>b},greaterThanOrEqualTo:function(a,b){return a>=b},equalTo:function(a,b){return a===b},lessThan:function(a,b){return ag&&(c=b.tooLate||b.message||this.tooLate||"must be no later than %{date}",c=e.format(c,{date:this.format(g,b),value:this.format(a,b)}),d.push(c)),d.length?e.unique(d):void 0)}},{parse:null,format:null}),date:function(a,b){return b=e.extend({},b,{dateOnly:!0}),e.validators.datetime.call(e.validators.datetime,a,b)},format:function(a,b){(e.isString(b)||b instanceof RegExp)&&(b={pattern:b}),b=e.extend({},this.options,b);var c,d=b.message||this.message||"is invalid",f=b.pattern;if(!e.isEmpty(a,!1))return e.isString(a)?(e.isString(f)&&(f=new RegExp(b.pattern,b.flags)),c=f.exec(a),c&&c[0].length==a.length?void 0:d):d},inclusion:function(a,b){if(!e.isEmpty(a,!1)&&(e.isArray(b)&&(b={within:b}),b=e.extend({},this.options,b),!e.contains(b.within,a))){var c=b.message||this.message||"^%{value} is not included in the list";return e.format(c,{value:a})}},exclusion:function(a,b){if(!e.isEmpty(a,!1)&&(e.isArray(b)&&(b={within:b}),b=e.extend({},this.options,b),e.contains(b.within,a))){var c=b.message||this.message||"^%{value} is restricted";return e.format(c,{value:a})}},email:e.extend(function(a,b){b=e.extend({},this.options,b);var c=b.message||this.message||"is not a valid email";if(!e.isEmpty(a,!1))return e.isString(a)&&this.PATTERN.exec(a)?void 0:c},{PATTERN:/^[a-z0-9\u007F-\uffff!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9\u007F-\uffff!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,}$/i}),equality:function(a,b,c,d){if(e.isDefined(a)){e.isString(b)&&(b={attribute:b}),b=e.extend({},this.options,b);var f=b.message||this.message||"is not equal to %{attribute}";if(e.isEmpty(b.attribute)||!e.isString(b.attribute))throw new Error("The attribute must be a non empty string");var g=e.getDeepObjectValue(d,b.attribute),h=b.comparator||function(a,b){return a===b};return h(a,g,b,c,d)?void 0:e.format(f,{attribute:e.prettify(b.attribute)})}},url:function(a,b){if(!e.isEmpty(a,!1)){b=e.extend({},this.options,b);var c=b.message||this.message||"is not a valid url",d=b.schemes||this.schemes||["http","https"],f=b.allowLocal||this.allowLocal||!1;if(!e.isString(a))return c;var g="^(?:(?:"+d.join("|")+")://)(?:\\S+(?::\\S*)?@)?(?:",h="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))";f?h+="?":g+="(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})",g+="(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*"+h+")(?::\\d{2,5})?(?:[/?#]\\S*)?$";var i=new RegExp(g,"i");return i.exec(a)?void 0:c}}},d.formatters={detailed:function(a){return a},flat:e.flattenErrorsToArray,grouped:function(a){var b;a=e.groupErrorsByAttribute(a);for(b in a)a[b]=e.flattenErrorsToArray(a[b]);return a},constraint:function(a){var b;a=e.groupErrorsByAttribute(a);for(b in a)a[b]=a[b].map(function(a){return a.validator}).sort();return a}},d.exposeModule(d,this,a,b,c)}).call(this,"undefined"!=typeof exports?exports:null,"undefined"!=typeof module?module:null,"undefined"!=typeof define?define:null); //# sourceMappingURL=validate.min.map \ No newline at end of file diff --git a/validate.min.map b/validate.min.map index 22cbdb2..0085e6e 100644 --- a/validate.min.map +++ b/validate.min.map @@ -1 +1 @@ -{"version":3,"sources":["validate.js"],"names":["exports","module","define","validate","attributes","constraints","options","v","extend","attr","validator","results","runValidations","isPromise","Error","processValidationResults","obj","slice","call","arguments","forEach","source","version","major","minor","patch","metadata","toString","format","isEmpty","Promise","EMPTY_STRING_REGEXP","validatorName","value","validators","validatorOptions","error","isDomElement","isJqueryElement","collectFormValues","getDeepObjectValue","result","name","push","attribute","globalOptions","errors","pruneEmptyErrors","expandMultipleErrors","convertErrorMessages","formatters","undefined","async","WrapErrors","wrapErrors","cleanAttributes","resolve","reject","waitForResults","then","err","single","fullMessages","reduce","memo","r","args","apply","isNumber","isNaN","isFunction","isInteger","isBoolean","isObject","Object","isDate","Date","isDefined","p","o","isString","jquery","querySelectorAll","querySelector","document","HTMLElement","nodeType","nodeName","test","isArray","length","str","vals","replace","FORMAT_REGEXP","m0","m1","m2","String","prettify","parseFloat","Math","round","toFixed","map","s","join","toLowerCase","stringifyValue","isHash","contains","indexOf","unique","array","filter","el","index","forEachKeyInKeypath","object","keypath","callback","i","key","escape","form","j","input","inputs","option","values","item","getAttribute","sanitizeFormValue","type","checked","multiple","selected","selectedIndex","trim","nullify","capitalize","toUpperCase","ret","msg","errorInfo","groupErrorsByAttribute","list","flattenErrorsToArray","self","whitelist","whitelistCreator","last","buildObjectWhitelist","ow","cleanRecursive","w","exposeModule","root","amd","warn","console","presence","this","allowEmpty","message","is","maximum","minimum","tokenizer","val","wrongLength","count","tooShort","tooLong","notValid","numericality","checks","greaterThan","c","greaterThanOrEqualTo","equalTo","lessThan","lessThanOrEqualTo","divisibleBy","strict","pattern","onlyInteger","RegExp","noStrings","notInteger","odd","notOdd","even","notEven","datetime","parse","earliest","NaN","latest","dateOnly","tooEarly","date","tooLate","match","flags","exec","inclusion","within","exclusion","email","PATTERN","equality","otherValue","comparator","v1","v2","url","schemes","allowLocal","regex","tld","detailed","flat","grouped","constraint","sort"],"mappings":"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","file":"validate.min.js"} \ No newline at end of file +{"version":3,"sources":["validate.js"],"names":["exports","module","define","validate","attributes","constraints","options","v","extend","attr","validator","results","runValidations","isPromise","Error","processValidationResults","obj","slice","call","arguments","forEach","source","version","major","minor","patch","metadata","toString","format","isEmpty","Promise","EMPTY_STRING_REGEXP","validatorName","value","validators","validatorOptions","error","isDomElement","isJqueryElement","collectFormValues","getDeepObjectValue","result","name","push","attribute","globalOptions","errors","pruneEmptyErrors","expandMultipleErrors","convertErrorMessages","formatters","undefined","async","WrapErrors","wrapErrors","cleanAttributes","resolve","reject","waitForResults","then","err","single","fullMessages","reduce","memo","r","args","apply","isNumber","isNaN","isFunction","isInteger","isBoolean","isObject","Object","isDate","Date","isDefined","p","o","isString","jquery","querySelectorAll","querySelector","document","HTMLElement","nodeType","nodeName","treatWhitespaceAsEmpty","test","isArray","length","str","vals","replace","FORMAT_REGEXP","m0","m1","m2","String","prettify","parseFloat","Math","round","toFixed","map","s","join","toLowerCase","stringifyValue","isHash","contains","indexOf","unique","array","filter","el","index","forEachKeyInKeypath","object","keypath","callback","i","key","escape","form","j","input","inputs","option","values","item","getAttribute","sanitizeFormValue","type","checked","multiple","selected","selectedIndex","trim","nullify","capitalize","toUpperCase","ret","msg","errorInfo","groupErrorsByAttribute","list","flattenErrorsToArray","self","whitelist","whitelistCreator","last","buildObjectWhitelist","ow","cleanRecursive","w","exposeModule","root","amd","warn","console","presence","this","allowEmpty","message","is","maximum","minimum","tokenizer","val","wrongLength","count","tooShort","tooLong","notValid","numericality","checks","greaterThan","c","greaterThanOrEqualTo","equalTo","lessThan","lessThanOrEqualTo","divisibleBy","strict","pattern","onlyInteger","RegExp","noStrings","notInteger","odd","notOdd","even","notEven","datetime","parse","earliest","NaN","latest","dateOnly","tooEarly","date","tooLate","match","flags","exec","inclusion","within","exclusion","email","PATTERN","equality","otherValue","comparator","v1","v2","url","schemes","allowLocal","regex","tld","detailed","flat","grouped","constraint","sort"],"mappings":"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","file":"validate.min.js"} \ No newline at end of file