Showing posts with label correct email format ios. Show all posts
Showing posts with label correct email format ios. Show all posts

Friday, 14 June 2013

Validate Email and Phone Number in iOS using XCode.


#pragma mark - validate Email And Phone number
- (BOOL) validateEmail: (NSString *) candidate
{
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:candidate];
}
- (BOOL) textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)textEntered
{
    if(textField)
    {
        NSUInteger currentLength = textField.text.length;
        NSCharacterSet *numbers = [NSCharacterSet decimalDigitCharacterSet];
        if (range.length == 1)
        {
            return YES;
        }
        if ([numbers characterIsMember:[textEntered characterAtIndex:0]])
        {
            if ( currentLength == 3 )
            {
                if (range.length != 1)
                {
                    NSString *firstThreeDigits = [textField.text substringWithRange:NSMakeRange(0, 3)];
                    NSString *updatedText;
                    if ([textEntered isEqualToString:@"-"])
                    {
                        updatedText = [NSString stringWithFormat:@"%@",firstThreeDigits];
                    }
                    else
                    {
                        updatedText = [NSString stringWithFormat:@"%@-",firstThreeDigits];
                    }
                    [textField setText:updatedText];
                }
            }
            else if ( currentLength > 3 && currentLength < 8 )
            {
                if ( range.length != 1 )
                {
                    NSString *firstThree = [textField.text substringWithRange:NSMakeRange(0, 3)];
                    NSString *dash = [textField.text substringWithRange:NSMakeRange(3, 1)];

                    NSUInteger newLenght = range.location - 4;

                    NSString *nextDigits = [textField.text substringWithRange:NSMakeRange(4, newLenght)];

                    NSString *updatedText = [NSString stringWithFormat:@"%@%@%@",firstThree,dash,nextDigits];

                    [textField setText:updatedText];
                }
            }
            else if ( currentLength == 8 )
            {
                if ( range.length != 1 )
                {
                    NSString *areaCode = [textField.text substringWithRange:NSMakeRange(0, 3)];

                    NSString *firstThree = [textField.text substringWithRange:NSMakeRange(4, 3)];

                    NSString *nextDigit = [textField.text substringWithRange:NSMakeRange(7, 1)];

                    [textField setText:[NSString stringWithFormat:@"%@-%@-%@",areaCode,firstThree,nextDigit]];
                }
            }
            NSUInteger proposedNewLength = textField.text.length - range.length + textEntered.length;
            if (proposedNewLength > 12) return NO;
            return YES;
        }
        else
        {
            return NO;
        }
        return YES;
    }
    return YES;
}