AutorÃa | Ultima modificación | Ver Log |
// includesgoog.require('i18n.phonenumbers.PhoneNumberFormat');goog.require('i18n.phonenumbers.PhoneNumberUtil');// format the given number to the given formatfunction formatNumber(number, countryCode, format) {try {var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();var numberObj = phoneUtil.parseAndKeepRawInput(number, countryCode);if (phoneUtil.isPossibleNumber(numberObj)) {format = (typeof format == "undefined") ? i18n.phonenumbers.PhoneNumberFormat.E164 : format;return phoneUtil.format(numberObj, format);} else {return number;}} catch (e) {return number;}}// get an example number for the given country codefunction getExampleNumber(countryCode, national, numberType) {try {var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();var numberObj = phoneUtil.getExampleNumberForType(countryCode, numberType);var format = (national) ? i18n.phonenumbers.PhoneNumberFormat.NATIONAL : i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL;return phoneUtil.format(numberObj, format);} catch (e) {return "";}}// get the extension from the given numberfunction getExtension(number, countryCode) {try {var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();var numberObj = phoneUtil.parseAndKeepRawInput(number, countryCode);return numberObj.getExtension();} catch (e) {return "";}}// get the type of the given number e.g. fixed-line/mobilefunction getNumberType(number, countryCode) {try {var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();var numberObj = phoneUtil.parseAndKeepRawInput(number, countryCode);return phoneUtil.getNumberType(numberObj);} catch (e) {// brokenreturn -99;}}// get more info if the validation has failed e.g. too long/too short// NOTE that isPossibleNumberWithReason returns a i18n.phonenumbers.PhoneNumberUtil.ValidationResultfunction getValidationError(number, countryCode) {try {var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();var numberObj = phoneUtil.parseAndKeepRawInput(number, countryCode);return phoneUtil.isPossibleNumberWithReason(numberObj);} catch (e) {//console.log(e);// here I convert thrown errors into ValidationResult enums (if possible)// errors are from i18n.phonenumbers.Error in the file https://github.com/googlei18n/libphonenumber/blob/master/javascript/i18n/phonenumbers/phonenumberutil.jsif (e.message == i18n.phonenumbers.Error.INVALID_COUNTRY_CODE) {return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_COUNTRY_CODE;}if (e.message == i18n.phonenumbers.Error.TOO_SHORT_AFTER_IDD || e.message == i18n.phonenumbers.Error.TOO_SHORT_NSN) {return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT;}if (e.message == i18n.phonenumbers.Error.TOO_LONG) {return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG;}// brokenreturn -99;}}// check if given number is validfunction isValidNumber(number, countryCode) {try {var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();var numberObj = phoneUtil.parseAndKeepRawInput(number, countryCode);return phoneUtil.isValidNumber(numberObj);} catch (e) {return false;}}// copied this from i18n.phonenumbers.PhoneNumberFormat in the file https://github.com/googlei18n/libphonenumber/blob/master/javascript/i18n/phonenumbers/phonenumberutil.jsvar numberFormat = {"E164": 0,"INTERNATIONAL": 1,"NATIONAL": 2,"RFC3966": 3};// copied this from i18n.phonenumbers.PhoneNumberType in https://github.com/googlei18n/libphonenumber/blob/master/javascript/i18n/phonenumbers/phonenumberutil.js and put the keys in quotes to force closure compiler to preserve the keys// TODO: there must be a way to just tell closure compiler to preserve the keys on i18n.phonenumbers.PhoneNumberType and just export thatvar numberType = {"FIXED_LINE": 0,"MOBILE": 1,"FIXED_LINE_OR_MOBILE": 2,"TOLL_FREE": 3,"PREMIUM_RATE": 4,"SHARED_COST": 5,"VOIP": 6,"PERSONAL_NUMBER": 7,"PAGER": 8,"UAN": 9,"VOICEMAIL": 10,"UNKNOWN": -1};// copied this from i18n.phonenumbers.PhoneNumberUtil.ValidationResult in https://github.com/googlei18n/libphonenumber/blob/master/javascript/i18n/phonenumbers/phonenumberutil.js and again put the keys in quotes.var validationError = {"IS_POSSIBLE": 0,"INVALID_COUNTRY_CODE": 1,"TOO_SHORT": 2,"TOO_LONG": 3,"IS_POSSIBLE_LOCAL_ONLY": 4,"INVALID_LENGTH": 5,};// exportsgoog.exportSymbol('intlTelInputUtils', {});goog.exportSymbol('intlTelInputUtils.formatNumber', formatNumber);goog.exportSymbol('intlTelInputUtils.getExampleNumber', getExampleNumber);goog.exportSymbol('intlTelInputUtils.getExtension', getExtension);goog.exportSymbol('intlTelInputUtils.getNumberType', getNumberType);goog.exportSymbol('intlTelInputUtils.getValidationError', getValidationError);goog.exportSymbol('intlTelInputUtils.isValidNumber', isValidNumber);// enumsgoog.exportSymbol('intlTelInputUtils.numberFormat', numberFormat);goog.exportSymbol('intlTelInputUtils.numberType', numberType);goog.exportSymbol('intlTelInputUtils.validationError', validationError);