Tutorial IOS: Validando um endereço de e-mail

On 6 de março de 2014 by Conrado Carneiro

No post de hoje iremos aprender a fazer uma rápida verificação de endereço e-mail, muito utilizado por exemplo,  em cadastro.

Existem diversos métodos de verificação e no modelo que iremos abordar hoje faremos uso da Classe NSRegularExpression. A uma breve explicação sobre o que é NSRegularExpression, traduzida do site da Apple.

A classe NSRegularExpression é utilizada para representar e aplicar expressões regulares com cadeias de caracteres Unicode. Uma instância dessa classe é uma representação imutável de um padrão de expressão regular compilado e vários sinalizadores de opção.  A sintaxe padrão suportada atualmente é especificado pelo ICU. As expressões regulares de ICU são descritas em http://userguide.icu-project.org/strings/regexp

O método de correspondência para NSRegularExpression é uma interação de bloco (Block), que permite aos clientes fornecer um objeto bloco  que será invocado cada vez que a expressão regular for correspondente a uma parte da seqüência de caracteres destino.

Eis o código de verificação:

[sourcecode language=”objc” wraplines=”false” collapse=”false”]
– (BOOL) validateEmail:(NSString*) email {
// Definindo e alocando variaveis necessárias
NSString *regExPattern;
NSRegularExpression *regEx = [NSRegularExpression alloc];
NSUInteger regExMatches;
UIAlertView *alert = [UIAlertView alloc];

// Verificando se a string do Email possui conteudo
if(![email length]){
return NO;
}

// Definindo o padrão da expressao regular
regExPattern = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

// Criando a expressão regular com o padrao definido anteriormente
regEx = [regEx initWithPattern:regExPattern
options:NSRegularExpressionCaseInsensitive
error:nil];

// Verificação se o e-mail é igual ao padrão definido
regExMatches = [regEx numberOfMatchesInString:email
options:0
range:NSMakeRange(0, [email length])];

// Se regExMatches for igual a 0 o e-mail é invalido
if (!regExMatches) {
alert = [alert initWithTitle:@"Confirmação de Email"
message:@"Email inválido"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
return NO;
} else {
alert = [alert initWithTitle:@"Confirmação de Email"
message:@"Email valido"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
return YES;
}
}
[/sourcecode]

Espero ter ajudado e se souberem de outros métodos de verificação eficientes postem nos comentários.

Deixe um comentário

O seu endereço de e-mail não será publicado.