libphonenumber-util.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. /*
  2. * vim: ts=4:sw=4:expandtab
  3. */
  4. ;(function() {
  5. "use strict";
  6. /*
  7. * This file extends the libphonenumber object with a set of phonenumbery
  8. * utility functions. libphonenumber must be included before you call these
  9. * functions, but the order of the files/script-tags doesn't matter.
  10. */
  11. window.libphonenumber = window.libphonenumber || {};
  12. window.libphonenumber.util = {
  13. getRegionCodeForNumber: function(number) {
  14. try {
  15. var parsedNumber = libphonenumber.parse(number);
  16. return libphonenumber.getRegionCodeForNumber(parsedNumber);
  17. } catch(e) {
  18. return "ZZ";
  19. }
  20. },
  21. splitCountryCode: function(number) {
  22. var parsedNumber = libphonenumber.parse(number);
  23. return {
  24. country_code: parsedNumber.values_[1],
  25. national_number: parsedNumber.values_[2]
  26. };
  27. },
  28. getCountryCode: function(regionCode) {
  29. var cc = libphonenumber.getCountryCodeForRegion(regionCode);
  30. return (cc !== 0) ? cc : "";
  31. },
  32. parseNumber: function(number, defaultRegionCode) {
  33. try {
  34. var parsedNumber = libphonenumber.parse(number, defaultRegionCode);
  35. return {
  36. isValidNumber: libphonenumber.isValidNumber(parsedNumber),
  37. regionCode: libphonenumber.getRegionCodeForNumber(parsedNumber),
  38. countryCode: '' + parsedNumber.getCountryCode(),
  39. nationalNumber: '' + parsedNumber.getNationalNumber(),
  40. e164: libphonenumber.format(parsedNumber, libphonenumber.PhoneNumberFormat.E164)
  41. };
  42. } catch (ex) {
  43. return { error: ex, isValidNumber: false };
  44. }
  45. },
  46. getAllRegionCodes: function() {
  47. return {
  48. "AD":"Andorra",
  49. "AE":"United Arab Emirates",
  50. "AF":"Afghanistan",
  51. "AG":"Antigua and Barbuda",
  52. "AI":"Anguilla",
  53. "AL":"Albania",
  54. "AM":"Armenia",
  55. "AO":"Angola",
  56. "AR":"Argentina",
  57. "AS":"AmericanSamoa",
  58. "AT":"Austria",
  59. "AU":"Australia",
  60. "AW":"Aruba",
  61. "AX":"Åland Islands",
  62. "AZ":"Azerbaijan",
  63. "BA":"Bosnia and Herzegovina",
  64. "BB":"Barbados",
  65. "BD":"Bangladesh",
  66. "BE":"Belgium",
  67. "BF":"Burkina Faso",
  68. "BG":"Bulgaria",
  69. "BH":"Bahrain",
  70. "BI":"Burundi",
  71. "BJ":"Benin",
  72. "BL":"Saint Barthélemy",
  73. "BM":"Bermuda",
  74. "BN":"Brunei Darussalam",
  75. "BO":"Bolivia, Plurinational State of",
  76. "BR":"Brazil",
  77. "BS":"Bahamas",
  78. "BT":"Bhutan",
  79. "BW":"Botswana",
  80. "BY":"Belarus",
  81. "BZ":"Belize",
  82. "CA":"Canada",
  83. "CC":"Cocos (Keeling) Islands",
  84. "CD":"Congo, The Democratic Republic of the",
  85. "CF":"Central African Republic",
  86. "CG":"Congo",
  87. "CH":"Switzerland",
  88. "CI":"Cote d'Ivoire",
  89. "CK":"Cook Islands",
  90. "CL":"Chile",
  91. "CM":"Cameroon",
  92. "CN":"China",
  93. "CO":"Colombia",
  94. "CR":"Costa Rica",
  95. "CU":"Cuba",
  96. "CV":"Cape Verde",
  97. "CX":"Christmas Island",
  98. "CY":"Cyprus",
  99. "CZ":"Czech Republic",
  100. "DE":"Germany",
  101. "DJ":"Djibouti",
  102. "DK":"Denmark",
  103. "DM":"Dominica",
  104. "DO":"Dominican Republic",
  105. "DZ":"Algeria",
  106. "EC":"Ecuador",
  107. "EE":"Estonia",
  108. "EG":"Egypt",
  109. "ER":"Eritrea",
  110. "ES":"Spain",
  111. "ET":"Ethiopia",
  112. "FI":"Finland",
  113. "FJ":"Fiji",
  114. "FK":"Falkland Islands (Malvinas)",
  115. "FM":"Micronesia, Federated States of",
  116. "FO":"Faroe Islands",
  117. "FR":"France",
  118. "GA":"Gabon",
  119. "GB":"United Kingdom",
  120. "GD":"Grenada",
  121. "GE":"Georgia",
  122. "GF":"French Guiana",
  123. "GG":"Guernsey",
  124. "GH":"Ghana",
  125. "GI":"Gibraltar",
  126. "GL":"Greenland",
  127. "GM":"Gambia",
  128. "GN":"Guinea",
  129. "GP":"Guadeloupe",
  130. "GQ":"Equatorial Guinea",
  131. "GR":"Ελλάδα",
  132. "GT":"Guatemala",
  133. "GU":"Guam",
  134. "GW":"Guinea-Bissau",
  135. "GY":"Guyana",
  136. "HK":"Hong Kong",
  137. "HN":"Honduras",
  138. "HR":"Croatia",
  139. "HT":"Haiti",
  140. "HU":"Magyarország",
  141. "ID":"Indonesia",
  142. "IE":"Ireland",
  143. "IL":"Israel",
  144. "IM":"Isle of Man",
  145. "IN":"India",
  146. "IO":"British Indian Ocean Territory",
  147. "IQ":"Iraq",
  148. "IR":"Iran, Islamic Republic of",
  149. "IS":"Iceland",
  150. "IT":"Italy",
  151. "JE":"Jersey",
  152. "JM":"Jamaica",
  153. "JO":"Jordan",
  154. "JP":"Japan",
  155. "KE":"Kenya",
  156. "KG":"Kyrgyzstan",
  157. "KH":"Cambodia",
  158. "KI":"Kiribati",
  159. "KM":"Comoros",
  160. "KN":"Saint Kitts and Nevis",
  161. "KP":"Korea, Democratic People's Republic of",
  162. "KR":"Korea, Republic of",
  163. "KW":"Kuwait",
  164. "KY":"Cayman Islands",
  165. "KZ":"Kazakhstan",
  166. "LA":"Lao People's Democratic Republic",
  167. "LB":"Lebanon",
  168. "LC":"Saint Lucia",
  169. "LI":"Liechtenstein",
  170. "LK":"Sri Lanka",
  171. "LR":"Liberia",
  172. "LS":"Lesotho",
  173. "LT":"Lithuania",
  174. "LU":"Luxembourg",
  175. "LV":"Latvia",
  176. "LY":"Libyan Arab Jamahiriya",
  177. "MA":"Morocco",
  178. "MC":"Monaco",
  179. "MD":"Moldova, Republic of",
  180. "ME":"Црна Гора",
  181. "MF":"Saint Martin",
  182. "MG":"Madagascar",
  183. "MH":"Marshall Islands",
  184. "MK":"Macedonia, The Former Yugoslav Republic of",
  185. "ML":"Mali",
  186. "MM":"Myanmar",
  187. "MN":"Mongolia",
  188. "MO":"Macao",
  189. "MP":"Northern Mariana Islands",
  190. "MQ":"Martinique",
  191. "MR":"Mauritania",
  192. "MS":"Montserrat",
  193. "MT":"Malta",
  194. "MU":"Mauritius",
  195. "MV":"Maldives",
  196. "MW":"Malawi",
  197. "MX":"Mexico",
  198. "MY":"Malaysia",
  199. "MZ":"Mozambique",
  200. "NA":"Namibia",
  201. "NC":"New Caledonia",
  202. "NE":"Niger",
  203. "NF":"Norfolk Island",
  204. "NG":"Nigeria",
  205. "NI":"Nicaragua",
  206. "NL":"Netherlands",
  207. "NO":"Norway",
  208. "NP":"Nepal",
  209. "NR":"Nauru",
  210. "NU":"Niue",
  211. "NZ":"New Zealand",
  212. "OM":"Oman",
  213. "PA":"Panama",
  214. "PE":"Peru",
  215. "PF":"French Polynesia",
  216. "PG":"Papua New Guinea",
  217. "PH":"Philippines",
  218. "PK":"Pakistan",
  219. "PL":"Polska",
  220. "PM":"Saint Pierre and Miquelon",
  221. "PR":"Puerto Rico",
  222. "PS":"Palestinian Territory, Occupied",
  223. "PT":"Portugal",
  224. "PW":"Palau",
  225. "PY":"Paraguay",
  226. "QA":"Qatar",
  227. "RE":"Réunion",
  228. "RO":"Romania",
  229. "RS":"Србија",
  230. "RU":"Russia",
  231. "RW":"Rwanda",
  232. "SA":"Saudi Arabia",
  233. "SB":"Solomon Islands",
  234. "SC":"Seychelles",
  235. "SD":"Sudan",
  236. "SE":"Sweden",
  237. "SG":"Singapore",
  238. "SH":"Saint Helena, Ascension and Tristan Da Cunha",
  239. "SI":"Slovenia",
  240. "SJ":"Svalbard and Jan Mayen",
  241. "SK":"Slovakia",
  242. "SL":"Sierra Leone",
  243. "SM":"San Marino",
  244. "SN":"Senegal",
  245. "SO":"Somalia",
  246. "SR":"Suriname",
  247. "ST":"Sao Tome and Principe",
  248. "SV":"El Salvador",
  249. "SY":"Syrian Arab Republic",
  250. "SZ":"Swaziland",
  251. "TC":"Turks and Caicos Islands",
  252. "TD":"Chad",
  253. "TG":"Togo",
  254. "TH":"Thailand",
  255. "TJ":"Tajikistan",
  256. "TK":"Tokelau",
  257. "TL":"Timor-Leste",
  258. "TM":"Turkmenistan",
  259. "TN":"Tunisia",
  260. "TO":"Tonga",
  261. "TR":"Turkey",
  262. "TT":"Trinidad and Tobago",
  263. "TV":"Tuvalu",
  264. "TW":"Taiwan, Province of China",
  265. "TZ":"Tanzania, United Republic of",
  266. "UA":"Ukraine",
  267. "UG":"Uganda",
  268. "US":"United States",
  269. "UY":"Uruguay",
  270. "UZ":"Uzbekistan",
  271. "VA":"Holy See (Vatican City State)",
  272. "VC":"Saint Vincent and the Grenadines",
  273. "VE":"Venezuela",
  274. "VG":"Virgin Islands, British",
  275. "VI":"Virgin Islands, U.S.",
  276. "VN":"Viet Nam",
  277. "VU":"Vanuatu",
  278. "WF":"Wallis and Futuna",
  279. "WS":"Samoa",
  280. "YE":"Yemen",
  281. "YT":"Mayotte",
  282. "ZA":"South Africa",
  283. "ZM":"Zambia",
  284. "ZW":"Zimbabwe"
  285. };
  286. } // getAllRegionCodes
  287. }; // libphonenumber.util
  288. })();