Olá pessoal, hoje eu gostaria de falar sobre como saber se um IMEI é válido e como poder valiar ele utilizando Regex. Muitos não sabem como trabalhar com Regex, mas eu aqui não vou explicar um conteúdo onte já tem muito conteúdo na Internet mostrando como aprender, inclusive, segue aqui um site que mostra como aprender e entender o Regex http://aprenda.vidageek.net/aprenda/regex. Acesse o site e leia por favor.

Esse validor basicamente analisa a quantidade de números e letras dentro de um IMEI. Existem algumas regras sobre isso, basicamente de 15 a 18 caracteres. Para realizar uma validação justa, teria que buscar na base de dados do órgão responsável por isso. Mas já é um grande passo você validar basedo em números.

O primeiro passo é criar um Regex para o IMEI: Veja o código 1.1.

private readonly Regex RegexIMEI = new Regex(@"^[A-Za-z0-9]{15,18}$", RegexOptions.Compiled);

O próximo passo é criar um método que valida ou verificar se o IMEI passado é válido ou não. Para isso é bom utilizar o Regex declarado anteriormente. Veja o código 1.2.

/// <summary>	
/// Validando o IMEI passado pelo usuário
/// </summary>
/// <param name="string">IMEI para validação.</param>
/// <returns>Verdadeiro se é um IMEI válido, caso contrário falso.</returns>
public static bool ValidarIMEI(string _imei)
{
    return !string.IsNullOrWhiteSpace(_imei) && RegexIMEI.IsMatch(_imei);
}

Código 1.2 - Método para validar IMEI

O parâmetro que recebe é do tipo string. É necessário verificar se o dado é null ou vazio. Se for diferente de null ou vazio então retorna FALSE. Depois existe outra condição em uma mesma linha que varifica se o IMEI dá Match com o Regex. Se for a mesma condição baseado no Regex então o valor é válido retornando TRUE, pelo contrário retorna FALSE.

O código fonte de uma aplicação console está no meu GitHub público para você fazer download. Segue o link abaixo:

Link para download do console: https://github.com/mauricio-junior/ValidandoIMEI

Espero que tenha gostado e qualquer dúvida pode entrar em contato pelo meu site https://www.mauriciojunior.org.