Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ReCoHa

Máscara em campo de Telefone

Recommended Posts

Olá Pessoal,

 

É o seguinte, eu tenho um sisteminha rodando num cliente meu, porém tem um dos computadores lá da empresa que insiste em não rodar o javascript contento a máscara para o telefone (##) ####-####. E o funcionário acaba colocando do jeito que ela quer: ##-####-#### ou ######-####. Gostaria então de poder validar tudo isso com o PHP também, caso venha com o formato correto não mecha em nada porém se estiver fora, deve ir pegando número por número e colocando dentro do formato padrão. Alguém já viu algo do tipo aqui pelo fórum? Procurei mas encontrei apenas máscaras javascript e isso eu já tenho rodando lá. Obrigado.

 

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma vez o João fez uma aqui e eu estou utilizando ela até hoje. Você usa desta forma, só que não da para você utilizar dentro do input (igual ao javascript), mas você mascara ela no script que recebe os valores, então você remove todos os pontos e parentes do campo e depois utiliza a função ^_^

 

// FUNÇÃO
function number_mask( $value , $mask ){
   $value = preg_replace( '/[^\d]+/' , '' , $value );

   if ( $mask === '#' ) return $value;
   else {
       for ( $i = 0 , $j = 0 , $t = strlen( $mask ) , $fi = $fo = null ; $i < $t ; $i++ ){
           if ( ( $mask{ $i } !== '#' ) && $j ){
               $fi  = sprintf( '%s%%%dd' , $fi , $j );
               $fo = sprintf( '%s%%0%dd%s' , $fo , $j , $mask{ $i } );
               $j = 0;
           } elseif ( $mask{ $i } == '#' ) ++$j;
           else $fo .= $mask{ $i };
       }

       if ( $j ){
           $fi = sprintf( '%s%%%dd' , $fi , $j );
           $fo = sprintf( '%s%%0%dd' , $fo , $j );
       }

       return vsprintf( $fo , sscanf( $value , $fi ) );
   }
}

//E a função você utiliza assim. $string, 'mascara'
$cpf = number_mask($_POST['cpf'], '###.###.###-##');

Compartilhar este post


Link para o post
Compartilhar em outros sites

André, vou testar em cara, mas pelo que você disse dará certo sim. Já posto aqui se deu certo. Obrigado até então!

 

 

Edit: André, deu certo sim cara. Se a máscara do Javascript funciona ele deixa do jeito que está, se a máscara não funciona a função trata de colocar nos moldes. Muito obrigado novamente. Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.