Оба других ответа будут работать, но они потерпят неудачу в значительной степени:
- Они не интернационализированы. Они не учитывают скобки вокруг кода города, или кода страны, или пробелов вместо дефисов. Все это действительные перестановки телефонных номеров.
- Они хрупкие. Что делать, если кто-то не хочет вводить код города? Что если что-то изменится и все телефонные номера в США вдруг получат дополнительную цифру? Ваш код сломается?
Ответ на этот вопрос - позволить фреймворкам справиться с этим за вас. Существует класс NSDataDetector
для iOS 4+ и OS X 10.7+, который вы можете использовать для обнаружения физических адресов, адресов электронной почты, ссылок, информации о транзите, телефонных номеров и т. Д.
В документации приведен пример того, как его использовать. Это гораздо лучшее решение, потому что это код, который вам не нужно поддерживать. Это будет работать в любой точке мира.