Sha256: 3e038d7c2cdd2a28f8d1671bced34e29e7e9faadb9cd883703eb2ebb3a408208
Contents?: true
Size: 1.66 KB
Versions: 396
Compression:
Stored size: 1.66 KB
Contents
#import <Foundation/Foundation.h> #import "PhoneNumberExample.h" @interface PhoneNumber () @property (nonatomic,strong,readwrite) NSString *inputString; @end @implementation PhoneNumber - (instancetype)initWithString:(NSString *)inputString { self = [super init]; if (self) { self.inputString = inputString; } return self; } - (NSString *)number { NSString *cleanNumber = [self cleanNumber]; if ([cleanNumber length] == 10) { return cleanNumber; } else if ([cleanNumber length] == 11 && [cleanNumber hasPrefix:@"1"]) { return [cleanNumber substringFromIndex:1]; } return [self defaultInvalidPhoneNumber]; } - (NSString *)cleanNumber { NSScanner *scanner = [NSScanner scannerWithString:self.inputString]; NSCharacterSet *validChars = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"]; NSMutableString *cleanNumber = [NSMutableString stringWithCapacity:self.inputString.length]; while([scanner isAtEnd] == NO) { NSString *cleanDigit; if ([scanner scanCharactersFromSet:validChars intoString:&cleanDigit]) { [cleanNumber appendString:cleanDigit]; } else { [scanner setScanLocation:([scanner scanLocation] + 1)]; } } return cleanNumber; } - (NSString *)description { return [NSString stringWithFormat:@"(%@) %@-%@",[self areaCode],[self prefix],[self suffix]]; } - (NSString *)areaCode { return [[self number] substringWithRange:NSMakeRange(0,3)]; } - (NSString *)prefix { return [[self number] substringWithRange:NSMakeRange(3,3)]; } - (NSString *)suffix { return [[self number] substringWithRange:NSMakeRange(6,4)]; } - (NSString *)defaultInvalidPhoneNumber { return @"0000000000"; } @end
Version data entries
396 entries across 396 versions & 1 rubygems