|
536 | 536 | parts,
|
537 | 537 | suffixPrompt
|
538 | 538 | ;
|
539 |
| - if (ancillary && ['integer', 'decimal', 'number'].indexOf(ruleName) >= 0 && ancillary.indexOf('..') >= 0) { |
| 539 | + if (ancillary && ['integer', 'decimal', 'number', 'size'].indexOf(ruleName) >= 0 && ancillary.indexOf('..') >= 0) { |
540 | 540 | parts = ancillary.split('..', 2);
|
541 |
| - if (!rule.prompt) { |
| 541 | + if (!rule.prompt && ruleName !== 'size') { |
542 | 542 | suffixPrompt = parts[0] === ''
|
543 | 543 | ? settings.prompt.maxValue.replace(/{ruleValue}/g, '{max}')
|
544 | 544 | : (parts[1] === ''
|
|
1638 | 1638 | minLength: '{name} must be at least {ruleValue} characters',
|
1639 | 1639 | exactLength: '{name} must be exactly {ruleValue} characters',
|
1640 | 1640 | maxLength: '{name} cannot be longer than {ruleValue} characters',
|
| 1641 | + size: '{name} must have a length between {min} and {max} characters', |
1641 | 1642 | match: '{name} must match {ruleValue} field',
|
1642 | 1643 | different: '{name} must have a different value than {ruleValue} field',
|
1643 | 1644 | creditCard: '{name} must be a valid credit card number',
|
|
1799 | 1800 | integer: function (value, range) {
|
1800 | 1801 | return $.fn.form.settings.rules.range(value, range, 'integer');
|
1801 | 1802 | },
|
1802 |
| - range: function (value, range, regExp) { |
| 1803 | + range: function (value, range, regExp, testLength) { |
1803 | 1804 | if (typeof regExp === 'string') {
|
1804 | 1805 | regExp = $.fn.form.settings.regExp[regExp];
|
1805 | 1806 | }
|
|
1828 | 1829 | max = parts[1] - 0;
|
1829 | 1830 | }
|
1830 | 1831 | }
|
| 1832 | + if (testLength) { |
| 1833 | + value = value.length; |
| 1834 | + } |
1831 | 1835 |
|
1832 | 1836 | return (
|
1833 | 1837 | regExp.test(value)
|
|
1913 | 1917 | },
|
1914 | 1918 |
|
1915 | 1919 | // is at least string length
|
1916 |
| - minLength: function (value, requiredLength) { |
1917 |
| - return value !== undefined |
1918 |
| - ? value.length >= requiredLength |
1919 |
| - : false; |
| 1920 | + minLength: function (value, minLength) { |
| 1921 | + return $.fn.form.settings.rules.range(value, minLength + '..', 'integer', true); |
1920 | 1922 | },
|
1921 | 1923 |
|
1922 | 1924 | // is exactly length
|
1923 | 1925 | exactLength: function (value, requiredLength) {
|
1924 |
| - return value !== undefined |
1925 |
| - ? value.length === Number(requiredLength) |
1926 |
| - : false; |
| 1926 | + return $.fn.form.settings.rules.range(value, requiredLength + '..' + requiredLength, 'integer', true); |
1927 | 1927 | },
|
1928 | 1928 |
|
1929 | 1929 | // is less than length
|
1930 | 1930 | maxLength: function (value, maxLength) {
|
1931 |
| - return value !== undefined |
1932 |
| - ? value.length <= maxLength |
1933 |
| - : false; |
| 1931 | + return $.fn.form.settings.rules.range(value, '..' + maxLength, 'integer', true); |
| 1932 | + }, |
| 1933 | + |
| 1934 | + size: function (value, range) { |
| 1935 | + return $.fn.form.settings.rules.range(value, range, 'integer', true); |
1934 | 1936 | },
|
1935 | 1937 |
|
1936 | 1938 | // matches another field
|
|
0 commit comments