@@ -31,9 +31,9 @@ <h1>validate.js</h1>
31
31
</ div >
32
32
33
33
< div class ="content "> < div class ='highlight '> < pre > < span class ="hljs-comment "> /*!
34
- * validate.js 0.11.1
34
+ * validate.js 0.12.0
35
35
*
36
- * (c) 2013-2016 Nicklas Ansman, 2013 Wrapp
36
+ * (c) 2013-2017 Nicklas Ansman, 2013 Wrapp
37
37
* Validate.js may be freely distributed under the MIT license.
38
38
* For all details and documentation:
39
39
* http://validatejs.org/
@@ -73,12 +73,8 @@ <h1>validate.js</h1>
73
73
, attr
74
74
, validator;
75
75
76
- < span class ="hljs-keyword "> for</ span > (attr < span class ="hljs-keyword "> in</ span > results) {
77
- < span class ="hljs-keyword "> for</ span > (validator < span class ="hljs-keyword "> in</ span > results[attr]) {
78
- < span class ="hljs-keyword "> if</ span > (v.isPromise(results[attr][validator])) {
79
- < span class ="hljs-keyword "> throw</ span > < span class ="hljs-keyword "> new</ span > < span class ="hljs-built_in "> Error</ span > (< span class ="hljs-string "> "Use validate.async if you want support for promises"</ span > );
80
- }
81
- }
76
+ < span class ="hljs-keyword "> if</ span > (results.some(< span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> r</ span > ) </ span > { < span class ="hljs-keyword "> return</ span > v.isPromise(r.error); })) {
77
+ < span class ="hljs-keyword "> throw</ span > < span class ="hljs-keyword "> new</ span > < span class ="hljs-built_in "> Error</ span > (< span class ="hljs-string "> "Use validate.async if you want support for promises"</ span > );
82
78
}
83
79
< span class ="hljs-keyword "> return</ span > validate.processValidationResults(results, options);
84
80
};
@@ -128,8 +124,8 @@ <h1>validate.js</h1>
128
124
129
125
< div class ="content "> < div class ='highlight '> < pre > version: {
130
126
major: < span class ="hljs-number "> 0</ span > ,
131
- minor: < span class ="hljs-number "> 11 </ span > ,
132
- patch: < span class ="hljs-number "> 1 </ span > ,
127
+ minor: < span class ="hljs-number "> 12 </ span > ,
128
+ patch: < span class ="hljs-number "> 0 </ span > ,
133
129
metadata: < span class ="hljs-literal "> null</ span > ,
134
130
toString: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> </ span > ) </ span > {
135
131
< span class ="hljs-keyword "> var</ span > version = v.format(< span class ="hljs-string "> "%{major}.%{minor}.%{patch}"</ span > , v.version);
@@ -932,8 +928,9 @@ <h1>validate.js</h1>
932
928
.toLowerCase();
933
929
},
934
930
935
- stringifyValue: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> value</ span > ) </ span > {
936
- < span class ="hljs-keyword "> return</ span > v.prettify(value);
931
+ stringifyValue: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> value, options</ span > ) </ span > {
932
+ < span class ="hljs-keyword "> var</ span > prettify = options && options.prettify || v.prettify;
933
+ < span class ="hljs-keyword "> return</ span > prettify(value);
937
934
},
938
935
939
936
isString: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> value</ span > ) </ span > {
@@ -1078,38 +1075,44 @@ <h1>validate.js</h1>
1078
1075
< span class ="hljs-keyword "> continue</ span > ;
1079
1076
}
1080
1077
1078
+ name = input.name.replace(< span class ="hljs-regexp "> /\./g</ span > , < span class ="hljs-string "> "\\\\."</ span > );
1081
1079
value = v.sanitizeFormValue(input.value, options);
1082
1080
< span class ="hljs-keyword "> if</ span > (input.type === < span class ="hljs-string "> "number"</ span > ) {
1083
1081
value = value ? +value : < span class ="hljs-literal "> null</ span > ;
1084
1082
} < span class ="hljs-keyword "> else</ span > < span class ="hljs-keyword "> if</ span > (input.type === < span class ="hljs-string "> "checkbox"</ span > ) {
1085
1083
< span class ="hljs-keyword "> if</ span > (input.attributes.value) {
1086
1084
< span class ="hljs-keyword "> if</ span > (!input.checked) {
1087
- value = values[input. name] || < span class ="hljs-literal "> null</ span > ;
1085
+ value = values[name] || < span class ="hljs-literal "> null</ span > ;
1088
1086
}
1089
1087
} < span class ="hljs-keyword "> else</ span > {
1090
1088
value = input.checked;
1091
1089
}
1092
1090
} < span class ="hljs-keyword "> else</ span > < span class ="hljs-keyword "> if</ span > (input.type === < span class ="hljs-string "> "radio"</ span > ) {
1093
1091
< span class ="hljs-keyword "> if</ span > (!input.checked) {
1094
- value = values[input. name] || < span class ="hljs-literal "> null</ span > ;
1092
+ value = values[name] || < span class ="hljs-literal "> null</ span > ;
1095
1093
}
1096
1094
}
1097
- values[input. name] = value;
1095
+ values[name] = value;
1098
1096
}
1099
1097
1100
1098
inputs = form.querySelectorAll(< span class ="hljs-string "> "select[name]"</ span > );
1101
1099
< span class ="hljs-keyword "> for</ span > (i = < span class ="hljs-number "> 0</ span > ; i < inputs.length; ++i) {
1102
1100
input = inputs.item(i);
1101
+ < span class ="hljs-keyword "> if</ span > (v.isDefined(input.getAttribute(< span class ="hljs-string "> "data-ignored"</ span > ))) {
1102
+ < span class ="hljs-keyword "> continue</ span > ;
1103
+ }
1104
+
1103
1105
< span class ="hljs-keyword "> if</ span > (input.multiple) {
1104
1106
value = [];
1105
1107
< span class ="hljs-keyword "> for</ span > (j < span class ="hljs-keyword "> in</ span > input.options) {
1106
1108
option = input.options[j];
1107
- < span class ="hljs-keyword "> if</ span > (option.selected) {
1109
+ < span class ="hljs-keyword "> if</ span > (option && option.selected) {
1108
1110
value.push(v.sanitizeFormValue(option.value, options));
1109
1111
}
1110
1112
}
1111
1113
} < span class ="hljs-keyword "> else</ span > {
1112
- value = v.sanitizeFormValue(input.options[input.selectedIndex].value, options);
1114
+ < span class ="hljs-keyword "> var</ span > _val = < span class ="hljs-keyword "> typeof</ span > input.options[input.selectedIndex] !== < span class ="hljs-string "> 'undefined'</ span > ? input.options[input.selectedIndex].value : < span class ="hljs-string "> ''</ span > ;
1115
+ value = v.sanitizeFormValue(_val, options);
1113
1116
}
1114
1117
values[input.name] = value;
1115
1118
}
@@ -1217,7 +1220,8 @@ <h1>validate.js</h1>
1217
1220
< div class ="content "> < div class ='highlight '> < pre > convertErrorMessages: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> errors, options</ span > ) </ span > {
1218
1221
options = options || {};
1219
1222
1220
- < span class ="hljs-keyword "> var</ span > ret = [];
1223
+ < span class ="hljs-keyword "> var</ span > ret = []
1224
+ , prettify = options.prettify || v.prettify;
1221
1225
errors.forEach(< span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> errorInfo</ span > ) </ span > {
1222
1226
< span class ="hljs-keyword "> var</ span > error = v.result(errorInfo.error,
1223
1227
errorInfo.value,
@@ -1234,10 +1238,12 @@ <h1>validate.js</h1>
1234
1238
< span class ="hljs-keyword "> if</ span > (error[< span class ="hljs-number "> 0</ span > ] === < span class ="hljs-string "> '^'</ span > ) {
1235
1239
error = error.slice(< span class ="hljs-number "> 1</ span > );
1236
1240
} < span class ="hljs-keyword "> else</ span > < span class ="hljs-keyword "> if</ span > (options.fullMessages !== < span class ="hljs-literal "> false</ span > ) {
1237
- error = v.capitalize(v. prettify(errorInfo.attribute)) + < span class ="hljs-string "> " "</ span > + error;
1241
+ error = v.capitalize(prettify(errorInfo.attribute)) + < span class ="hljs-string "> " "</ span > + error;
1238
1242
}
1239
1243
error = error.replace(< span class ="hljs-regexp "> /\\\^/g</ span > , < span class ="hljs-string "> "^"</ span > );
1240
- error = v.format(error, {value: v.stringifyValue(errorInfo.value)});
1244
+ error = v.format(error, {
1245
+ value: v.stringifyValue(errorInfo.value, options)
1246
+ });
1241
1247
ret.push(v.extend({}, errorInfo, {error: error}));
1242
1248
});
1243
1249
< span class ="hljs-keyword "> return</ span > ret;
@@ -1390,7 +1396,7 @@ <h1>validate.js</h1>
1390
1396
1391
1397
< div class ="content "> < div class ='highlight '> < pre > presence: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> value, options</ span > ) </ span > {
1392
1398
options = v.extend({}, < span class ="hljs-keyword "> this</ span > .options, options);
1393
- < span class ="hljs-keyword "> if</ span > (options.allowEmpty ? !v.isDefined(value) : v.isEmpty(value)) {
1399
+ < span class ="hljs-keyword "> if</ span > (options.allowEmpty !== < span class =" hljs-literal " > false </ span > ? !v.isDefined(value) : v.isEmpty(value)) {
1394
1400
< span class ="hljs-keyword "> return</ span > options.message || < span class ="hljs-keyword "> this</ span > .message || < span class ="hljs-string "> "can't be blank"</ span > ;
1395
1401
}
1396
1402
},
@@ -1467,7 +1473,7 @@ <h1>validate.js</h1>
1467
1473
< span class ="hljs-keyword "> return</ span > options.message || errors;
1468
1474
}
1469
1475
},
1470
- numericality: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> value, options</ span > ) </ span > {</ pre > </ div > </ div >
1476
+ numericality: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> value, options, attribute, attributes, globalOptions </ span > ) </ span > {</ pre > </ div > </ div >
1471
1477
1472
1478
</ li >
1473
1479
@@ -1498,7 +1504,10 @@ <h1>validate.js</h1>
1498
1504
lessThan: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> v, c</ span > ) </ span > { < span class ="hljs-keyword "> return</ span > v < c; },
1499
1505
lessThanOrEqualTo: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> v, c</ span > ) </ span > { < span class ="hljs-keyword "> return</ span > v <= c; },
1500
1506
divisibleBy: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> v, c</ span > ) </ span > { < span class ="hljs-keyword "> return</ span > v % c === < span class ="hljs-number "> 0</ span > ; }
1501
- };</ pre > </ div > </ div >
1507
+ }
1508
+ , prettify = options.prettify ||
1509
+ (globalOptions && globalOptions.prettify) ||
1510
+ v.prettify;</ pre > </ div > </ div >
1502
1511
1503
1512
</ li >
1504
1513
@@ -1514,7 +1523,7 @@ <h1>validate.js</h1>
1514
1523
</ div >
1515
1524
1516
1525
< div class ="content "> < div class ='highlight '> < pre > < span class ="hljs-keyword "> if</ span > (v.isString(value) && options.strict) {
1517
- < span class ="hljs-keyword "> var</ span > pattern = < span class ="hljs-string "> "^(0|[1-9]\\d*)"</ span > ;
1526
+ < span class ="hljs-keyword "> var</ span > pattern = < span class ="hljs-string "> "^-? (0|[1-9]\\d*)"</ span > ;
1518
1527
< span class ="hljs-keyword "> if</ span > (!options.onlyInteger) {
1519
1528
pattern += < span class ="hljs-string "> "(\\.\\d+)?"</ span > ;
1520
1529
}
@@ -1616,7 +1625,7 @@ <h1>validate.js</h1>
1616
1625
1617
1626
errors.push(v.format(msg, {
1618
1627
count: count,
1619
- type: v. prettify(name)
1628
+ type: prettify(name)
1620
1629
}));
1621
1630
}
1622
1631
}
@@ -1678,7 +1687,7 @@ <h1>validate.js</h1>
1678
1687
< div class ="pilwrap ">
1679
1688
< a class ="pilcrow " href ="#section-60 "> ¶</ a >
1680
1689
</ div >
1681
- < p > 86400000 is the number of seconds in a day, this is used to remove
1690
+ < p > 86400000 is the number of milliseconds in a day, this is used to remove
1682
1691
the time from the date</ p >
1683
1692
1684
1693
</ div >
@@ -1852,7 +1861,7 @@ <h1>validate.js</h1>
1852
1861
}, {
1853
1862
PATTERN: < span class ="hljs-regexp "> /^[a-z0-9\u007F-\uffff!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9\u007F-\uffff!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,}$/i</ span >
1854
1863
}),
1855
- equality: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> value, options, attribute, attributes</ span > ) </ span > {
1864
+ equality: < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> value, options, attribute, attributes, globalOptions </ span > ) </ span > {
1856
1865
< span class ="hljs-keyword "> if</ span > (!v.isDefined(value)) {
1857
1866
< span class ="hljs-keyword "> return</ span > ;
1858
1867
}
@@ -1872,10 +1881,13 @@ <h1>validate.js</h1>
1872
1881
< span class ="hljs-keyword "> var</ span > otherValue = v.getDeepObjectValue(attributes, options.attribute)
1873
1882
, comparator = options.comparator || < span class ="hljs-function "> < span class ="hljs-keyword "> function</ span > (< span class ="hljs-params "> v1, v2</ span > ) </ span > {
1874
1883
< span class ="hljs-keyword "> return</ span > v1 === v2;
1875
- };
1884
+ }
1885
+ , prettify = options.prettify ||
1886
+ (globalOptions && globalOptions.prettify) ||
1887
+ v.prettify;
1876
1888
1877
1889
< span class ="hljs-keyword "> if</ span > (!comparator(value, otherValue, options, attribute, attributes)) {
1878
- < span class ="hljs-keyword "> return</ span > v.format(message, {attribute: v. prettify(options.attribute)});
1890
+ < span class ="hljs-keyword "> return</ span > v.format(message, {attribute: prettify(options.attribute)});
1879
1891
}
1880
1892
},</ pre > </ div > </ div >
1881
1893
0 commit comments