libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h

147 lines
6.9 KiB
Objective-C

//
// NBPhoneNumberUtil.h
// libPhoneNumber
//
// Created by tabby on 2015. 2. 8..
// Copyright (c) 2015년 ohtalk.me. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NBPhoneNumberDefines.h"
@class NBPhoneMetaData, NBPhoneNumber;
@interface NBPhoneNumberUtil : NSObject
+ (NBPhoneNumberUtil *)sharedInstance;
@property(nonatomic, strong, readonly) NSDictionary *DIGIT_MAPPINGS;
// regular expressions
- (NSArray *)matchesByRegex:(NSString *)sourceString regex:(NSString *)pattern;
- (NSArray *)matchedStringByRegex:(NSString *)sourceString regex:(NSString *)pattern;
- (NSString *)replaceStringByRegex:(NSString *)sourceString
regex:(NSString *)pattern
withTemplate:(NSString *)templateString;
- (int)stringPositionByRegex:(NSString *)sourceString regex:(NSString *)pattern;
// libPhoneNumber Util functions
- (NSString *)convertAlphaCharactersInNumber:(NSString *)number;
- (NSString *)normalize:(NSString *)phoneNumber;
- (NSString *)normalizeDigitsOnly:(NSString *)number;
- (NSString *)normalizeDiallableCharsOnly:(NSString *)number;
- (BOOL)isNumberGeographical:(NBPhoneNumber *)phoneNumber;
- (NSString *)extractPossibleNumber:(NSString *)phoneNumber;
- (NSNumber *)extractCountryCode:(NSString *)fullNumber nationalNumber:(NSString **)nationalNumber;
#if TARGET_OS_IOS
- (NSString *)countryCodeByCarrier;
#endif
- (NSString *)getNddPrefixForRegion:(NSString *)regionCode stripNonDigits:(BOOL)stripNonDigits;
- (NSString *)getNationalSignificantNumber:(NBPhoneNumber *)phoneNumber;
- (NSArray *)getSupportedRegions;
- (NBEPhoneNumberType)getNumberType:(NBPhoneNumber *)phoneNumber;
- (NSNumber *)getCountryCodeForRegion:(NSString *)regionCode;
- (NSString *)getRegionCodeForCountryCode:(NSNumber *)countryCallingCode;
- (NSArray *)getRegionCodesForCountryCode:(NSNumber *)countryCallingCode;
- (NSString *)getRegionCodeForNumber:(NBPhoneNumber *)phoneNumber;
- (NBPhoneNumber *)getExampleNumber:(NSString *)regionCode error:(NSError **)error;
- (NBPhoneNumber *)getExampleNumberForType:(NSString *)regionCode
type:(NBEPhoneNumberType)type
error:(NSError **)error;
- (NBPhoneNumber *)getExampleNumberForNonGeoEntity:(NSNumber *)countryCallingCode
error:(NSError **)error;
- (BOOL)canBeInternationallyDialled:(NBPhoneNumber *)number error:(NSError **)error;
- (BOOL)truncateTooLongNumber:(NBPhoneNumber *)number;
- (BOOL)isValidNumber:(NBPhoneNumber *)number;
- (BOOL)isViablePhoneNumber:(NSString *)phoneNumber;
- (BOOL)isAlphaNumber:(NSString *)number;
- (BOOL)isValidNumberForRegion:(NBPhoneNumber *)number regionCode:(NSString *)regionCode;
- (BOOL)isNANPACountry:(NSString *)regionCode;
- (BOOL)isLeadingZeroPossible:(NSNumber *)countryCallingCode;
- (NBEValidationResult)isPossibleNumberWithReason:(NBPhoneNumber *)number error:(NSError **)error;
- (BOOL)isPossibleNumber:(NBPhoneNumber *)number;
- (BOOL)isPossibleNumber:(NBPhoneNumber *)number error:(NSError **)error;
- (BOOL)isPossibleNumberString:(NSString *)number
regionDialingFrom:(NSString *)regionDialingFrom
error:(NSError **)error;
- (NBEMatchType)isNumberMatch:(id)firstNumberIn second:(id)secondNumberIn error:(NSError **)error;
- (int)getLengthOfGeographicalAreaCode:(NBPhoneNumber *)phoneNumber error:(NSError **)error;
- (int)getLengthOfNationalDestinationCode:(NBPhoneNumber *)phoneNumber error:(NSError **)error;
- (BOOL)maybeStripNationalPrefixAndCarrierCode:(NSString **)numberStr
metadata:(NBPhoneMetaData *)metadata
carrierCode:(NSString **)carrierCode;
- (NBECountryCodeSource)maybeStripInternationalPrefixAndNormalize:(NSString **)numberStr
possibleIddPrefix:(NSString *)possibleIddPrefix;
- (NSNumber *)maybeExtractCountryCode:(NSString *)number
metadata:(NBPhoneMetaData *)defaultRegionMetadata
nationalNumber:(NSString **)nationalNumber
keepRawInput:(BOOL)keepRawInput
phoneNumber:(NBPhoneNumber **)phoneNumber
error:(NSError **)error;
- (NBPhoneNumber *)parse:(NSString *)numberToParse
defaultRegion:(NSString *)defaultRegion
error:(NSError **)error;
- (NBPhoneNumber *)parseAndKeepRawInput:(NSString *)numberToParse
defaultRegion:(NSString *)defaultRegion
error:(NSError **)error;
- (NBPhoneNumber *)parseWithPhoneCarrierRegion:(NSString *)numberToParse error:(NSError **)error;
- (NSString *)format:(NBPhoneNumber *)phoneNumber
numberFormat:(NBEPhoneNumberFormat)numberFormat
error:(NSError **)error;
- (NSString *)formatByPattern:(NBPhoneNumber *)number
numberFormat:(NBEPhoneNumberFormat)numberFormat
userDefinedFormats:(NSArray *)userDefinedFormats
error:(NSError **)error;
- (NSString *)formatNumberForMobileDialing:(NBPhoneNumber *)number
regionCallingFrom:(NSString *)regionCallingFrom
withFormatting:(BOOL)withFormatting
error:(NSError **)error;
- (NSString *)formatOutOfCountryCallingNumber:(NBPhoneNumber *)number
regionCallingFrom:(NSString *)regionCallingFrom
error:(NSError **)error;
- (NSString *)formatOutOfCountryKeepingAlphaChars:(NBPhoneNumber *)number
regionCallingFrom:(NSString *)regionCallingFrom
error:(NSError **)error;
- (NSString *)formatNationalNumberWithCarrierCode:(NBPhoneNumber *)number
carrierCode:(NSString *)carrierCode
error:(NSError **)error;
- (NSString *)formatInOriginalFormat:(NBPhoneNumber *)number
regionCallingFrom:(NSString *)regionCallingFrom
error:(NSError **)error;
- (NSString *)formatNationalNumberWithPreferredCarrierCode:(NBPhoneNumber *)number
fallbackCarrierCode:(NSString *)fallbackCarrierCode
error:(NSError **)error;
- (BOOL)formattingRuleHasFirstGroupOnly:(NSString *)nationalPrefixFormattingRule;
/**
* Returns the mobile token for the provided country calling code if it has one, otherwise
* returns an empty string. A mobile token is a number inserted before the area code when dialing
* a mobile number from that country from abroad.
*
* @param countryCallingCode the country calling code for which we want the mobile token.
* @return the mobile token, as a string, for the given country calling code.
*/
- (NSString *)getCountryMobileTokenFromCountryCode:(NSInteger)countryCallingCode;
@end