Yii 1.1: phonenumbervalidator

Realiza a validação de números telefônicos brasileiros através do uso de expressões regulares.
3 followers

Validador de números telefônicos brasileiros para Yii 1.x

Esta extensão é um validador de números telefônicos brasileiros através da utilização de expressões regulares. Podem ser validados somente números móveis (celulares) ou qualquer outro tipo de número telefônico, desde que o mesmo contenha o respectivo DDD.

A extensão pode ainda validar números com ou sem máscara, sendo que caso contenha máscara, a mesma deve seguir o padrão: (99) 9999-9999 ou (99) 99999-9999, caso o telefone seja móvel e contenha o nono dígito.

A extensão já está preparada para validação de números de telefone móvel que contenha o nono dígito para os seguintes DDDs: 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 24, 27 e 28.

Requisitos

Esta extensão requer a versão 1.1 ou superior do Yii.

Testes foram realizados somente na versão 1.1.x.

Uso

Copie o arquivo IWPhoneNumberValidator.php para o diretório

protected/extensions/validators/

No método rules() da sua classe de modelo, você deve incluir a chamada da extensão, da seguinte maneira:

public function rules()
{
  return array(
    ....,
    array('telefone', 'ext.IWPhoneNumberValidator'),
    ....,
    );
}

Por padrão a extensão valida qualquer número de telefone, caso queira validar somente números de telefones móveis (celulares), adicione o seguinte parâmetro.

public function rules()
{
  return array(
    ....,
    array('telefone', 'ext.IWPhoneNumberValidator', 'onlyMobileNumbers' => TRUE),
    ....,
    );
}

Por padrão a extensão aceita campos vazios ou nulos como verdadeiros, caso deseje remover esta aceitação, adicione o seguinte parâmetro:

public function rules()
{
  return array(
    ....,
    array('telefone', 'ext.IWPhoneNumberValidator', 'allowEmpty' => FALSE),
    ....,
    );
}

A extensão por padrão, também valida números de telefone sem máscaras, caso queira considerar a máscara na validação do número, adicione o seguinte parâmetro:

public function rules()
{
  return array(
    ....,
    array('telefone', 'ext.IWPhoneNumberValidator', 'validateWithMask' => TRUE),
    ....,
    );
}

Vale Lembrar Que O Padrão De Máscara Aceito é: (99) 9999-9999 ou (99) 99999-9999 quando o número for de um telefone móvel com o nono dígito. Caso deseje alterar a expressão regular de validação da máscara, altere os atributos phoneWithMaskPattern e mobilePhoneWithMaskPattern.

Por último a mensagem exibida ao usuário pode ser customizada através da adição do parâmetro customMessage, da seguinte maneira.

public function rules()
{
  return array(
    ....,
    array('telefone', 'ext.IWPhoneNumberValidator', 'onlyMobileNumbers' => TRUE, 'customMessage' => 'O campo "{attribute}" não é um número de celular válido.'),
    ....,
    );
}

Créditos

Os créditos pelas expressões regulares são do Fausto Gonçalves Cintra. Maiores informações no endereço: http://goncin.wordpress.com/2010/08/30/validando-numeros-de-telefone-com-expressoes-regulares/

Versões

28/10/2011 - 1.0 - Versão inicial do validador.

04/03/2014 - 1.1 - Inclusão de validação de nono dígito.

Contatos

Ivan Wilhelm

E-mail: ivan.whm@me.com

Twitter: @ivanwhm

Skype: ivan.whm

Outros projetos: https://github.com/ivanwhm

Total 2 comments

#5666 report it
Trejder at 2011/10/31 05:38am
Provide English description

Hi there,

I agree with Raoul. Yii Framework is written in English, Yii community is mainly English-speaking and Yii extensions repository should be in English.

So please, be so kind to translate this description into English, so non-Portugese speakers can also get benefit of your work.

Thank you and cheers, Trejder

#5651 report it
Raoul at 2011/10/28 01:57pm
humm

..maybe this extension could be intresting for me, but I can't tell : I don't speak Portugese !

Leave a comment

Please to leave your comment.

Create extension