Удалить все, кроме номеров из NSString - PullRequest
157 голосов
/ 15 июля 2009

У меня есть NSString (номер телефона) с некоторыми скобками и дефисами, так как некоторые номера телефонов отформатированы. Как удалить все символы, кроме цифр, из строки?

Ответы [ 22 ]

0 голосов
/ 21 июня 2019

Свифт 5

let newString = origString.components(separatedBy: CharacterSet.decimalDigits.inverted).joined(separator: "")
0 голосов
/ 15 июля 2009

Если вы просто хотите получить числа из строки, вы могли бы , конечно, использовать регулярные выражения для их анализа. Для выполнения регулярных выражений в Objective-C, проверьте RegexKit . Редактировать: Как указывает @Nathan, использование NSScanner является гораздо более простым способом для анализа всех чисел из строка. Я совершенно не знал об этом варианте, так что подпишите его за предложение. (Я даже не люблю использовать регулярные выражения, поэтому я предпочитаю подходы, которые не требуют их.)

Если вы хотите отформатировать телефонные номера для отображения, стоит взглянуть на NSNumberFormatter . Я предлагаю вам прочитать этот связанный вопрос SO , чтобы узнать, как это сделать. Помните, что номера телефонов форматируются по-разному в зависимости от местоположения и / или локали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...