1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-02 09:27:55 +01:00
Telegram/legacy/TelegraphKit/TGPhoneUtils.m
2015-10-01 19:19:52 +03:00

83 lines
2.0 KiB
Objective-C

#import "TGPhoneUtils.h"
#import "RMPhoneFormat.h"
@implementation TGPhoneUtils
+ (NSString *)formatPhone:(NSString *)phone forceInternational:(bool)forceInternational
{
if (phone == nil)
return @"";
return [[RMPhoneFormat instance] format:phone implicitPlus:forceInternational];
}
+ (NSString *)formatPhoneUrl:(NSString *)phone
{
if (phone == nil)
return @"";
unichar cleanPhone[phone.length];
int cleanPhoneLength = 0;
int length = (int)phone.length;
for (int i = 0; i < length; i++)
{
unichar c = [phone characterAtIndex:i];
if (!(c == ' ' || c == '(' || c == ')' || c == '-'))
cleanPhone[cleanPhoneLength++] = c;
}
return [[NSString alloc] initWithCharacters:cleanPhone length:cleanPhoneLength];
}
+ (NSString *)cleanPhone:(NSString *)phone
{
if (phone.length == 0)
return @"";
char buf[phone.length];
int bufPtr = 0;
int length = (int)phone.length;
for (int i = 0; i < length; i++)
{
unichar c = [phone characterAtIndex:i];
if (c >= '0' && c <= '9')
{
buf[bufPtr++] = (char)c;
}
}
return [[NSString alloc] initWithBytes:buf length:bufPtr encoding:NSUTF8StringEncoding];
}
+ (NSString *)cleanInternationalPhone:(NSString *)phone forceInternational:(bool)forceInternational
{
if (phone.length == 0)
return @"";
char buf[phone.length];
int bufPtr = 0;
bool hadPlus = false;
int length = (int)phone.length;
for (int i = 0; i < length; i++)
{
unichar c = [phone characterAtIndex:i];
if ((c >= '0' && c <= '9') || (c == '+' && !hadPlus))
{
buf[bufPtr++] = (char)c;
if (c == '+')
hadPlus = true;
}
}
NSString *result = [[NSString alloc] initWithBytes:buf length:bufPtr encoding:NSUTF8StringEncoding];
if (forceInternational && bufPtr != 0 && buf[0] != '+')
result = [[NSString alloc] initWithFormat:@"+%@", result];
return result;
}
@end