UNPKG

formvalidation

Version:

The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks

57 lines (52 loc) 2 kB
/** * imei validator * * @link http://formvalidation.io/validators/imei/ * @author https://twitter.com/nghuuphuoc * @copyright (c) 2013 - 2015 Nguyen Huu Phuoc * @license http://formvalidation.io/license/ */ (function($) { FormValidation.I18n = $.extend(true, FormValidation.I18n || {}, { 'en_US': { imei: { 'default': 'Please enter a valid IMEI number' } } }); FormValidation.Validator.imei = { /** * Validate IMEI (International Mobile Station Equipment Identity) * Examples: * - Valid: 35-209900-176148-1, 35-209900-176148-23, 3568680000414120, 490154203237518 * - Invalid: 490154203237517 * * @see http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity * @param {FormValidation.Base} validator The validator plugin instance * @param {jQuery} $field Field element * @param {Object} options Can consist of the following keys: * - message: The invalid message * @returns {Boolean} */ validate: function(validator, $field, options) { var value = validator.getFieldValue($field, 'imei'); if (value === '') { return true; } switch (true) { case /^\d{15}$/.test(value): case /^\d{2}-\d{6}-\d{6}-\d{1}$/.test(value): case /^\d{2}\s\d{6}\s\d{6}\s\d{1}$/.test(value): value = value.replace(/[^0-9]/g, ''); return FormValidation.Helper.luhn(value); case /^\d{14}$/.test(value): case /^\d{16}$/.test(value): case /^\d{2}-\d{6}-\d{6}(|-\d{2})$/.test(value): case /^\d{2}\s\d{6}\s\d{6}(|\s\d{2})$/.test(value): return true; default: return false; } } }; }(jQuery));