react-telefone-brasileiro

Máscara simples para input de número de telefone brasileiro com 8 ou 9 dígitos e DDD

Usage no npm install needed!

<script type="module">
  import reactTelefoneBrasileiro from 'https://cdn.skypack.dev/react-telefone-brasileiro';
</script>

README

Máscara simples para input de número de telefone brasileiro com 8 ou 9 dígitos e DDD

Essa biblioteca para React cria um <input/> com a máscara ideal para o formato brasileiro dos números de telefone enquanto você digita. Por padrão é identificado tanto números telefônicos de 8 dígitos, quanto números de 9 dígitos. Além disso também é possível reconhecer números com DDD.

Instalação

$ npm i react-telefone-brasileiro

Importação

Coloque o seguinte import no seu componente:

import TelefoneBrasileiroInput from "react-telefone-brasileiro";

Exemplos

Exemplo básico

O exemplo abaixo cria um <input/> para reconhecer números telefônicos de 8 ou 9 dígitos sem o DDD. De acordo com as seguintes máscaras: xxxx-xxxx ou xxxxx-xxxx.

import React, { useState } from "react";
import ReactDOM from "react-dom";
import TelefoneBrasileiroInput from "react-telefone-brasileiro";

const App = () => {

  const [telefone, setTelefone] = useState("");

  return (
        <div>
            <TelefoneBrasileiroInput
                value={telefone}
                onChange={(event) => setTelefone(ev.target.value);}
            />
        </div>
  );
};

ReactDOM.render(<App />, document.getElementById("root"));

Exemplo com DDD

O exemplo abaixo cria um <input/> para reconhecer números telefônicos de 8 ou 9 dígitos com o DDD. De acordo com as seguintes máscaras: (xx)xxxx-xxxx ou (xx)xxxxx-xxxx.

import React, { useState } from "react";
import ReactDOM from "react-dom";
import TelefoneBrasileiroInput from "react-telefone-brasileiro";

const App = () => {

    const [telefone, setTelefone] = useState("");

    return (
        <div>
            <TelefoneBrasileiroInput
                value={telefone}
                onChange={(event) => setTelefone(ev.target.value);}
                temDDD
            />
        </div>
    );
};

ReactDOM.render(<App />, document.getElementById("root"));

Parâmetros visuais

Foi criado também outras máscaras:

  • Uma para o formato do nono dígito separado: x xxxx-xxxx ou (xx)x xxxx-xxxx.

    Para isso adicione o parâmetro separaNono:

    <TelefoneBrasileiroInput
        value={telefone}
        onChange={(event) => setTelefone(ev.target.value);}
        separaNono
    />
    
  • E outra para o formato do DDD separado: (xx) xxxx-xxxx ou (xx) xxxxx-xxxx. Para isso adicione o parâmetro separaDDD:

    OBS: repare que o parâmetro temDDD é obrigatório para esse parâmetro.

    <TelefoneBrasileiroInput
        value={telefone}
        onChange={(event) => setTelefone(ev.target.value);}
        temDDD
        separaDDD
    />
    
  • Você também pode utilizar os dois parâmetros ao mesmo tempo, com isso as máscaras seguem o seguinte formato: (xx) x xxxx-xxxx.

    <TelefoneBrasileiroInput
        value={telefone}
        onChange={(event) => setTelefone(ev.target.value);}
        separaNono
        temDDD
        separaDDD
    />
    

Parâmetros

Nome Tipo Default Descrição
value String "" Valor a ser digitado.
onChange Function(event) () => {} event: Evento de entrada do parâmetro onChange.
event.target.value é o valor a ser mascarado.
temDDD Boolean false Adiciona campo para a escrita do DDD caso true.
separaNono Boolean false Separa o nono dígito dos demais dígitos caso true
separaDDD Boolean false Separa o DDD dos demais dígitos caso true

Você também pode adicionar os parâmetros padrões da tag <input/> como type, required, dentre outros. Bem como do próprio React, como className, ref, etc.
Qualquer parâmetro extra adicionado, será incluído na tag <input/> a ser gerada.

License

License