imei.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. (function($) {
  2. $.fn.bootstrapValidator.i18n.imei = $.extend($.fn.bootstrapValidator.i18n.imei || {}, {
  3. 'default': 'Please enter a valid IMEI number'
  4. });
  5. $.fn.bootstrapValidator.validators.imei = {
  6. /**
  7. * Validate IMEI (International Mobile Station Equipment Identity)
  8. * Examples:
  9. * - Valid: 35-209900-176148-1, 35-209900-176148-23, 3568680000414120, 490154203237518
  10. * - Invalid: 490154203237517
  11. *
  12. * @see http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity
  13. * @param {BootstrapValidator} validator The validator plugin instance
  14. * @param {jQuery} $field Field element
  15. * @param {Object} options Can consist of the following keys:
  16. * - message: The invalid message
  17. * @returns {Boolean}
  18. */
  19. validate: function(validator, $field, options) {
  20. var value = $field.val();
  21. if (value === '') {
  22. return true;
  23. }
  24. switch (true) {
  25. case /^\d{15}$/.test(value):
  26. case /^\d{2}-\d{6}-\d{6}-\d{1}$/.test(value):
  27. case /^\d{2}\s\d{6}\s\d{6}\s\d{1}$/.test(value):
  28. value = value.replace(/[^0-9]/g, '');
  29. return $.fn.bootstrapValidator.helpers.luhn(value);
  30. case /^\d{14}$/.test(value):
  31. case /^\d{16}$/.test(value):
  32. case /^\d{2}-\d{6}-\d{6}(|-\d{2})$/.test(value):
  33. case /^\d{2}\s\d{6}\s\d{6}(|\s\d{2})$/.test(value):
  34. return true;
  35. default:
  36. return false;
  37. }
  38. }
  39. };
  40. }(window.jQuery));