Refer @Bala's answer
NSString *call = @"+91-9884715715";
// Search for the "+a" starting at the end of string
NSRange range = [call rangeOfString:@"+" options:NSBackwardsSearch];
// What did we find
if (range.length > 0)
NSLog(@"Range is: %@", NSStringFromRange(range));
Edit
Refer following link: TextField Validation With Regular Expression
Change the line
- (BOOL)validateInputWithString:(NSString *)aString
{
NSString * const regularExpression = @"^([+]{1})([0-9]{2,6})([-]{1})([0-9]{10})$";
NSError *error = NULL;
Add the code
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
char *x = (char*)[string UTF8String];
//NSLog(@"char index is %i",x[0]);
if([string isEqualToString:@"-"] || [string isEqualToString:@"+"] || [string isEqualToString:@"0"] || [string isEqualToString:@"1"] || [string isEqualToString:@"2"] || [string isEqualToString:@"3"] || [string isEqualToString:@"4"] || [string isEqualToString:@"5"] || [string isEqualToString:@"6"] || [string isEqualToString:@"7"] || [string isEqualToString:@"8"] || [string isEqualToString:@"9"] || x[0]==0 ) {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return (newLength > 18) ? NO : YES;
} else {
return NO;
}
}
Edit
Tested with demo:
//// Button Press Event
-(IBAction)Check:(id)sender{
BOOL check = [self validateInputWithString:TextField.text];
if(check == YES){
NSLog(@"Hii");
NSString *string= [NSString stringWithFormat:@"%@", TextField.text];
NSArray *first = [string componentsSeparatedByString:@"-"];
NSString *second = [first objectAtIndex:1];
NSString *third = [first objectAtIndex:0];
if([second length] < 11){
NSLog(@"bang");
}
else{
NSLog(@"Fault");
}
if([third length] > 3 || [third length] < 7){
NSLog(@"Bang");
}
else{
NSLog(@"fault");
}
}
else{
NSLog(@"FAULT");
}
}