|
|
@@ -2,7 +2,7 @@
|
|
|
* BootstrapValidator (http://bootstrapvalidator.com)
|
|
|
* The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3
|
|
|
*
|
|
|
- * @version v0.5.0-dev, built on 2014-07-06 9:00:01 AM
|
|
|
+ * @version v0.5.0-dev, built on 2014-07-06 9:18:35 AM
|
|
|
* @author https://twitter.com/nghuuphuoc
|
|
|
* @copyright (c) 2013 - 2014 Nguyen Huu Phuoc
|
|
|
* @license MIT
|
|
|
@@ -4293,19 +4293,6 @@
|
|
|
countries: {
|
|
|
GB: 'United Kingdom',
|
|
|
US: 'USA'
|
|
|
- },
|
|
|
-
|
|
|
- getMessage: function(options) {
|
|
|
- var country = (options.country || 'US').toUpperCase();
|
|
|
- if ($.inArray(country, $.fn.bootstrapValidator.validators.phone.COUNTRIES) === -1) {
|
|
|
- return $.fn.bootstrapValidator.helpers.format(this.countryNotSupported, country);
|
|
|
- }
|
|
|
-
|
|
|
- if (this.countries[country]) {
|
|
|
- return $.fn.bootstrapValidator.helpers.format(this.country, this.countries[country]);
|
|
|
- }
|
|
|
-
|
|
|
- return this['default'];
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -4316,7 +4303,7 @@
|
|
|
},
|
|
|
|
|
|
// The supported countries
|
|
|
- COUNTRIES: ['GB', 'US'],
|
|
|
+ COUNTRY_CODES: ['GB', 'US'],
|
|
|
|
|
|
/**
|
|
|
* Return true if the input value contains a valid phone number for the country
|
|
|
@@ -4326,9 +4313,14 @@
|
|
|
* @param {jQuery} $field Field element
|
|
|
* @param {Object} options Consist of key:
|
|
|
* - message: The invalid message
|
|
|
- * - country: The ISO 3166 country code
|
|
|
+ * - country: The ISO-3166 country code. It can be
|
|
|
+ * - A country code
|
|
|
+ * - Name of field which its value defines the country code
|
|
|
+ * - Name of callback function that returns the country code
|
|
|
+ * - A callback function that returns the country code
|
|
|
+ *
|
|
|
* Currently it only supports United State (US) or United Kingdom (GB) countries
|
|
|
- * @returns {Boolean}
|
|
|
+ * @returns {Boolean|Object}
|
|
|
*/
|
|
|
validate: function(validator, $field, options) {
|
|
|
var value = $field.val();
|
|
|
@@ -4336,17 +4328,28 @@
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- var country = (options.country || 'US').toUpperCase();
|
|
|
- if ($.inArray(country, this.COUNTRIES) === -1) {
|
|
|
- return false;
|
|
|
+ var country = options.country;
|
|
|
+ if (typeof country !== 'string' || $.inArray(country, this.COUNTRY_CODES) === -1) {
|
|
|
+ // Try to determine the country
|
|
|
+ country = validator.getDynamicOption(country, $field);
|
|
|
}
|
|
|
|
|
|
- switch (country) {
|
|
|
+ if (!country || $.inArray(country.toUpperCase(), this.COUNTRY_CODES) === -1) {
|
|
|
+ return {
|
|
|
+ valid: false,
|
|
|
+ message: $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.phone.countryNotSupported, country)
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ var isValid = true;
|
|
|
+ switch (country.toUpperCase()) {
|
|
|
case 'GB':
|
|
|
// http://aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers#Match_GB_telephone_number_in_any_format
|
|
|
// Test: http://regexr.com/38uhv
|
|
|
- value = $.trim(value);
|
|
|
- return (/^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$/).test(value);
|
|
|
+ value = $.trim(value);
|
|
|
+ isValid = (/^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$/).test(value);
|
|
|
+ break;
|
|
|
+
|
|
|
case 'US':
|
|
|
/* falls through */
|
|
|
default:
|
|
|
@@ -4354,9 +4357,15 @@
|
|
|
// May start with 1, +1, or 1-; should discard
|
|
|
// Area code may be delimited with (), & sections may be delimited with . or -
|
|
|
// Test: http://regexr.com/38mqi
|
|
|
- value = value.replace(/\D/g, '');
|
|
|
- return (/^(?:(1\-?)|(\+1 ?))?\(?(\d{3})[\)\-\.]?(\d{3})[\-\.]?(\d{4})$/).test(value) && (value.length === 10);
|
|
|
+ value = value.replace(/\D/g, '');
|
|
|
+ isValid = (/^(?:(1\-?)|(\+1 ?))?\(?(\d{3})[\)\-\.]?(\d{3})[\-\.]?(\d{4})$/).test(value) && (value.length === 10);
|
|
|
+ break;
|
|
|
}
|
|
|
+
|
|
|
+ return {
|
|
|
+ valid: isValid,
|
|
|
+ message: $.fn.bootstrapValidator.helpers.format(options.message || $.fn.bootstrapValidator.i18n.phone.country, $.fn.bootstrapValidator.i18n.phone.countries[country])
|
|
|
+ };
|
|
|
}
|
|
|
};
|
|
|
}(window.jQuery));
|
|
|
@@ -6226,7 +6235,7 @@
|
|
|
country: 'country'
|
|
|
},
|
|
|
|
|
|
- COUNTRIES: ['CA', 'DK', 'GB', 'IT', 'NL', 'SE', 'SG', 'US'],
|
|
|
+ COUNTRY_CODES: ['CA', 'DK', 'GB', 'IT', 'NL', 'SE', 'SG', 'US'],
|
|
|
|
|
|
/**
|
|
|
* Return true if and only if the input value is a valid country zip code
|
|
|
@@ -6268,12 +6277,12 @@
|
|
|
}
|
|
|
|
|
|
var country = options.country;
|
|
|
- if (typeof country !== 'string' || $.inArray(country, this.COUNTRIES) === -1) {
|
|
|
+ if (typeof country !== 'string' || $.inArray(country, this.COUNTRY_CODES) === -1) {
|
|
|
// Try to determine the country
|
|
|
country = validator.getDynamicOption(country, $field);
|
|
|
}
|
|
|
|
|
|
- if (!country || $.inArray(country.toUpperCase(), this.COUNTRIES) === -1) {
|
|
|
+ if (!country || $.inArray(country.toUpperCase(), this.COUNTRY_CODES) === -1) {
|
|
|
return { valid: false, message: $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.zipCode.countryNotSupported, country) };
|
|
|
}
|
|
|
|