Как бы вы сопоставили два похожих телефонных номера в Swift, но один содержит код страны, а другой-нет
Я пытаюсь сопоставить два похожих телефонных номера в swift, но одному из них предшествует код страны, а другой может отличаться. Например, я хочу, чтобы эти 2 номера телефонов совпадали:
0499999999
+32499999999
Я хочу, чтобы это было действительно для любого телефонного номера во всем мире. Есть ли регулярное выражение для этого или, может быть, стручок, который я мог бы загрузить для этого?Спасибо
2 ответа:
Используйте PhoneNumberKit Для Разбора Номера Телефона.
Https://github.com/marmelroy/PhoneNumberKit
Как:
let rawNumberArray = ["0291 12345678", "+49 291 12345678", "04134 1234", "09123 12345"] let phoneNumbers = phoneNumberKit.parse(rawNumberArray) let phoneNumbersCustomDefaultRegion = phoneNumberKit.parse(rawNumberArray, withRegion: "DE", ignoreType: true)
Вы можете сделать таблицу поиска стран и кодов стран и проверить по телефону, какой у них язык
let countrycode = NSLocale.currentLocale().objectForKey(NSLocaleCountryCode) as? String let countryPrefixes = ["IE": "+353", "US": "+1", etc... let prefix = countryPrefixes[countrycode]
Как только у вас появится префикс, вы сможете посмотреть только на оставшиеся числа.
Или вы можете использовать эту библиотеку github https://github.com/rmaddy/RMPhoneFormat который, кажется, уже сделал эту работу для вас.
Конечно, это предполагает, что вы ожидаете, что номер телефона, введенный в ваше устройство, будет действителен в данном регионе. что телефон работает внутри.