296 lines
		
	
	
	
		
			8.2 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			296 lines
		
	
	
	
		
			8.2 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
 * vim: ts=4:sw=4:expandtab
 | 
						|
 */
 | 
						|
;(function() {
 | 
						|
  "use strict";
 | 
						|
 | 
						|
  /*
 | 
						|
  * This file extends the libphonenumber object with a set of phonenumbery
 | 
						|
  * utility functions. libphonenumber must be included before you call these
 | 
						|
  * functions, but the order of the files/script-tags doesn't matter.
 | 
						|
  */
 | 
						|
 | 
						|
  window.libphonenumber = window.libphonenumber || {};
 | 
						|
  window.libphonenumber.util = {
 | 
						|
    getRegionCodeForNumber: function(number) {
 | 
						|
      try {
 | 
						|
        var parsedNumber = libphonenumber.parse(number);
 | 
						|
        return libphonenumber.getRegionCodeForNumber(parsedNumber);
 | 
						|
      } catch(e) {
 | 
						|
        return "ZZ";
 | 
						|
      }
 | 
						|
    },
 | 
						|
 | 
						|
    splitCountryCode: function(number) {
 | 
						|
        var parsedNumber = libphonenumber.parse(number);
 | 
						|
        return {
 | 
						|
            country_code: parsedNumber.values_[1],
 | 
						|
            national_number: parsedNumber.values_[2]
 | 
						|
        };
 | 
						|
    },
 | 
						|
 | 
						|
    getCountryCode: function(regionCode) {
 | 
						|
      var cc = libphonenumber.getCountryCodeForRegion(regionCode);
 | 
						|
      return (cc !== 0) ? cc : "";
 | 
						|
    },
 | 
						|
 | 
						|
    verifyNumber: function(number, regionCode) {
 | 
						|
      var parsedNumber = libphonenumber.parse(number, regionCode);
 | 
						|
 | 
						|
      if(!regionCode || regionCode == 'ZZ') {
 | 
						|
        regionCode = libphonenumber.getRegionCodeForNumber(parsedNumber);
 | 
						|
      }
 | 
						|
 | 
						|
      var isValidNumber = libphonenumber.isValidNumber(parsedNumber);
 | 
						|
      var isValidNumberForRegion = libphonenumber.isValidNumberForRegion(parsedNumber, regionCode);
 | 
						|
 | 
						|
      if (isValidNumber && isValidNumberForRegion) {
 | 
						|
        return libphonenumber.format(parsedNumber, libphonenumber.PhoneNumberFormat.E164);
 | 
						|
      } else {
 | 
						|
        throw new Error("The number seems not to be valid.");
 | 
						|
      }
 | 
						|
    },
 | 
						|
 | 
						|
    getAllRegionCodes: function() {
 | 
						|
      return {
 | 
						|
        "AD":"Andorra",
 | 
						|
        "AE":"United Arab Emirates",
 | 
						|
        "AF":"Afghanistan",
 | 
						|
        "AG":"Antigua and Barbuda",
 | 
						|
        "AI":"Anguilla",
 | 
						|
        "AL":"Albania",
 | 
						|
        "AM":"Armenia",
 | 
						|
        "AO":"Angola",
 | 
						|
        "AR":"Argentina",
 | 
						|
        "AS":"AmericanSamoa",
 | 
						|
        "AT":"Austria",
 | 
						|
        "AU":"Australia",
 | 
						|
        "AW":"Aruba",
 | 
						|
        "AX":"Åland Islands",
 | 
						|
        "AZ":"Azerbaijan",
 | 
						|
        "BA":"Bosnia and Herzegovina",
 | 
						|
        "BB":"Barbados",
 | 
						|
        "BD":"Bangladesh",
 | 
						|
        "BE":"Belgium",
 | 
						|
        "BF":"Burkina Faso",
 | 
						|
        "BG":"Bulgaria",
 | 
						|
        "BH":"Bahrain",
 | 
						|
        "BI":"Burundi",
 | 
						|
        "BJ":"Benin",
 | 
						|
        "BL":"Saint Barthélemy",
 | 
						|
        "BM":"Bermuda",
 | 
						|
        "BN":"Brunei Darussalam",
 | 
						|
        "BO":"Bolivia, Plurinational State of",
 | 
						|
        "BR":"Brazil",
 | 
						|
        "BS":"Bahamas",
 | 
						|
        "BT":"Bhutan",
 | 
						|
        "BW":"Botswana",
 | 
						|
        "BY":"Belarus",
 | 
						|
        "BZ":"Belize",
 | 
						|
        "CA":"Canada",
 | 
						|
        "CC":"Cocos (Keeling) Islands",
 | 
						|
        "CD":"Congo, The Democratic Republic of the",
 | 
						|
        "CF":"Central African Republic",
 | 
						|
        "CG":"Congo",
 | 
						|
        "CH":"Switzerland",
 | 
						|
        "CI":"Cote d'Ivoire",
 | 
						|
        "CK":"Cook Islands",
 | 
						|
        "CL":"Chile",
 | 
						|
        "CM":"Cameroon",
 | 
						|
        "CN":"China",
 | 
						|
        "CO":"Colombia",
 | 
						|
        "CR":"Costa Rica",
 | 
						|
        "CU":"Cuba",
 | 
						|
        "CV":"Cape Verde",
 | 
						|
        "CX":"Christmas Island",
 | 
						|
        "CY":"Cyprus",
 | 
						|
        "CZ":"Czech Republic",
 | 
						|
        "DE":"Germany",
 | 
						|
        "DJ":"Djibouti",
 | 
						|
        "DK":"Denmark",
 | 
						|
        "DM":"Dominica",
 | 
						|
        "DO":"Dominican Republic",
 | 
						|
        "DZ":"Algeria",
 | 
						|
        "EC":"Ecuador",
 | 
						|
        "EE":"Estonia",
 | 
						|
        "EG":"Egypt",
 | 
						|
        "ER":"Eritrea",
 | 
						|
        "ES":"Spain",
 | 
						|
        "ET":"Ethiopia",
 | 
						|
        "FI":"Finland",
 | 
						|
        "FJ":"Fiji",
 | 
						|
        "FK":"Falkland Islands (Malvinas)",
 | 
						|
        "FM":"Micronesia, Federated States of",
 | 
						|
        "FO":"Faroe Islands",
 | 
						|
        "FR":"France",
 | 
						|
        "GA":"Gabon",
 | 
						|
        "GB":"United Kingdom",
 | 
						|
        "GD":"Grenada",
 | 
						|
        "GE":"Georgia",
 | 
						|
        "GF":"French Guiana",
 | 
						|
        "GG":"Guernsey",
 | 
						|
        "GH":"Ghana",
 | 
						|
        "GI":"Gibraltar",
 | 
						|
        "GL":"Greenland",
 | 
						|
        "GM":"Gambia",
 | 
						|
        "GN":"Guinea",
 | 
						|
        "GP":"Guadeloupe",
 | 
						|
        "GQ":"Equatorial Guinea",
 | 
						|
        "GR":"Ελλάδα",
 | 
						|
        "GT":"Guatemala",
 | 
						|
        "GU":"Guam",
 | 
						|
        "GW":"Guinea-Bissau",
 | 
						|
        "GY":"Guyana",
 | 
						|
        "HK":"Hong Kong",
 | 
						|
        "HN":"Honduras",
 | 
						|
        "HR":"Croatia",
 | 
						|
        "HT":"Haiti",
 | 
						|
        "HU":"Magyarország",
 | 
						|
        "ID":"Indonesia",
 | 
						|
        "IE":"Ireland",
 | 
						|
        "IL":"Israel",
 | 
						|
        "IM":"Isle of Man",
 | 
						|
        "IN":"India",
 | 
						|
        "IO":"British Indian Ocean Territory",
 | 
						|
        "IQ":"Iraq",
 | 
						|
        "IR":"Iran, Islamic Republic of",
 | 
						|
        "IS":"Iceland",
 | 
						|
        "IT":"Italy",
 | 
						|
        "JE":"Jersey",
 | 
						|
        "JM":"Jamaica",
 | 
						|
        "JO":"Jordan",
 | 
						|
        "JP":"Japan",
 | 
						|
        "KE":"Kenya",
 | 
						|
        "KG":"Kyrgyzstan",
 | 
						|
        "KH":"Cambodia",
 | 
						|
        "KI":"Kiribati",
 | 
						|
        "KM":"Comoros",
 | 
						|
        "KN":"Saint Kitts and Nevis",
 | 
						|
        "KP":"Korea, Democratic People's Republic of",
 | 
						|
        "KR":"Korea, Republic of",
 | 
						|
        "KW":"Kuwait",
 | 
						|
        "KY":"Cayman Islands",
 | 
						|
        "KZ":"Kazakhstan",
 | 
						|
        "LA":"Lao People's Democratic Republic",
 | 
						|
        "LB":"Lebanon",
 | 
						|
        "LC":"Saint Lucia",
 | 
						|
        "LI":"Liechtenstein",
 | 
						|
        "LK":"Sri Lanka",
 | 
						|
        "LR":"Liberia",
 | 
						|
        "LS":"Lesotho",
 | 
						|
        "LT":"Lithuania",
 | 
						|
        "LU":"Luxembourg",
 | 
						|
        "LV":"Latvia",
 | 
						|
        "LY":"Libyan Arab Jamahiriya",
 | 
						|
        "MA":"Morocco",
 | 
						|
        "MC":"Monaco",
 | 
						|
        "MD":"Moldova, Republic of",
 | 
						|
        "ME":"Црна Гора",
 | 
						|
        "MF":"Saint Martin",
 | 
						|
        "MG":"Madagascar",
 | 
						|
        "MH":"Marshall Islands",
 | 
						|
        "MK":"Macedonia, The Former Yugoslav Republic of",
 | 
						|
        "ML":"Mali",
 | 
						|
        "MM":"Myanmar",
 | 
						|
        "MN":"Mongolia",
 | 
						|
        "MO":"Macao",
 | 
						|
        "MP":"Northern Mariana Islands",
 | 
						|
        "MQ":"Martinique",
 | 
						|
        "MR":"Mauritania",
 | 
						|
        "MS":"Montserrat",
 | 
						|
        "MT":"Malta",
 | 
						|
        "MU":"Mauritius",
 | 
						|
        "MV":"Maldives",
 | 
						|
        "MW":"Malawi",
 | 
						|
        "MX":"Mexico",
 | 
						|
        "MY":"Malaysia",
 | 
						|
        "MZ":"Mozambique",
 | 
						|
        "NA":"Namibia",
 | 
						|
        "NC":"New Caledonia",
 | 
						|
        "NE":"Niger",
 | 
						|
        "NF":"Norfolk Island",
 | 
						|
        "NG":"Nigeria",
 | 
						|
        "NI":"Nicaragua",
 | 
						|
        "NL":"Netherlands",
 | 
						|
        "NO":"Norway",
 | 
						|
        "NP":"Nepal",
 | 
						|
        "NR":"Nauru",
 | 
						|
        "NU":"Niue",
 | 
						|
        "NZ":"New Zealand",
 | 
						|
        "OM":"Oman",
 | 
						|
        "PA":"Panama",
 | 
						|
        "PE":"Peru",
 | 
						|
        "PF":"French Polynesia",
 | 
						|
        "PG":"Papua New Guinea",
 | 
						|
        "PH":"Philippines",
 | 
						|
        "PK":"Pakistan",
 | 
						|
        "PL":"Polska",
 | 
						|
        "PM":"Saint Pierre and Miquelon",
 | 
						|
        "PR":"Puerto Rico",
 | 
						|
        "PS":"Palestinian Territory, Occupied",
 | 
						|
        "PT":"Portugal",
 | 
						|
        "PW":"Palau",
 | 
						|
        "PY":"Paraguay",
 | 
						|
        "QA":"Qatar",
 | 
						|
        "RE":"Réunion",
 | 
						|
        "RO":"Romania",
 | 
						|
        "RS":"Србија",
 | 
						|
        "RU":"Russia",
 | 
						|
        "RW":"Rwanda",
 | 
						|
        "SA":"Saudi Arabia",
 | 
						|
        "SB":"Solomon Islands",
 | 
						|
        "SC":"Seychelles",
 | 
						|
        "SD":"Sudan",
 | 
						|
        "SE":"Sweden",
 | 
						|
        "SG":"Singapore",
 | 
						|
        "SH":"Saint Helena, Ascension and Tristan Da Cunha",
 | 
						|
        "SI":"Slovenia",
 | 
						|
        "SJ":"Svalbard and Jan Mayen",
 | 
						|
        "SK":"Slovakia",
 | 
						|
        "SL":"Sierra Leone",
 | 
						|
        "SM":"San Marino",
 | 
						|
        "SN":"Senegal",
 | 
						|
        "SO":"Somalia",
 | 
						|
        "SR":"Suriname",
 | 
						|
        "ST":"Sao Tome and Principe",
 | 
						|
        "SV":"El Salvador",
 | 
						|
        "SY":"Syrian Arab Republic",
 | 
						|
        "SZ":"Swaziland",
 | 
						|
        "TC":"Turks and Caicos Islands",
 | 
						|
        "TD":"Chad",
 | 
						|
        "TG":"Togo",
 | 
						|
        "TH":"Thailand",
 | 
						|
        "TJ":"Tajikistan",
 | 
						|
        "TK":"Tokelau",
 | 
						|
        "TL":"Timor-Leste",
 | 
						|
        "TM":"Turkmenistan",
 | 
						|
        "TN":"Tunisia",
 | 
						|
        "TO":"Tonga",
 | 
						|
        "TR":"Turkey",
 | 
						|
        "TT":"Trinidad and Tobago",
 | 
						|
        "TV":"Tuvalu",
 | 
						|
        "TW":"Taiwan, Province of China",
 | 
						|
        "TZ":"Tanzania, United Republic of",
 | 
						|
        "UA":"Ukraine",
 | 
						|
        "UG":"Uganda",
 | 
						|
        "US":"United States",
 | 
						|
        "UY":"Uruguay",
 | 
						|
        "UZ":"Uzbekistan",
 | 
						|
        "VA":"Holy See (Vatican City State)",
 | 
						|
        "VC":"Saint Vincent and the Grenadines",
 | 
						|
        "VE":"Venezuela",
 | 
						|
        "VG":"Virgin Islands, British",
 | 
						|
        "VI":"Virgin Islands, U.S.",
 | 
						|
        "VN":"Viet Nam",
 | 
						|
        "VU":"Vanuatu",
 | 
						|
        "WF":"Wallis and Futuna",
 | 
						|
        "WS":"Samoa",
 | 
						|
        "YE":"Yemen",
 | 
						|
        "YT":"Mayotte",
 | 
						|
        "ZA":"South Africa",
 | 
						|
        "ZM":"Zambia",
 | 
						|
        "ZW":"Zimbabwe"
 | 
						|
      };
 | 
						|
    } // getAllRegionCodes
 | 
						|
  }; // libphonenumber.util
 | 
						|
})();
 |