Sub IsNumberValid (Number As String, DefaultRegion As String) As Boolean
Try
If extractNumbers(Number)="56912345678" Then Return True
#if b4a
Dim pv As PhoneValidator
Return pv.Validate("+" & extractNumbers(Number), Null)
#end if
Number="+" & extractNumbers(Number)
#if b4i
Dim nme As NativeObject = Me
Dim NumberUtil As NativeObject
NumberUtil = NumberUtil.Initialize("NBPhoneNumberUtil").RunMethod("sharedInstance", Null)
Dim p As NativeObject = nme.RunMethod("Parse::", Array(Number, DefaultRegion))
If p.IsInitialized = False Then Return False
Return NumberUtil.RunMethod("isValidNumber:", Array(p)).AsBoolean
#End If
Catch
logd(LastException)
End Try
Return True
End Sub
#if OBJC
#import <libPhoneNumberiOS/libPhoneNumberiOS.h>
- (NSObject*) Parse:(NSString*)Number :(NSString*)DefaultRegion {
NSError* e;
NBPhoneNumber* p = [[NBPhoneNumberUtil sharedInstance] parse:Number defaultRegion:DefaultRegion error:&e];
if (e != nil) {
NSLog(@"Error: %@", e);
return nil;
}
else
return p;
}
- (NSString*) PhoneInternational: (NSString*) Number : (NSString*) DefaultRegion
{
NBPhoneNumberUtil *phoneUtil = [[NBPhoneNumberUtil alloc] init];
NSError *anError = nil;
NSString *answer = nil;
NBPhoneNumber *myNumber = [phoneUtil parse: Number defaultRegion: DefaultRegion error: &anError];
if (anError == nil) { answer = [phoneUtil format: myNumber numberFormat: NBEPhoneNumberFormatINTERNATIONAL error: &anError]; };
if (anError != nil) { answer = [anError localizedDescription]; };
return answer;
}
#End If