Máscara de CNPJ
export function maskCNPJ(cnpj: string) { return cnpj .replace(/\D/g, "") .replace(/(\d{2})(\d)/, "$1.$2") .replace(/(\d{3})(\d)/, "$1.$2") .replace(/(\d{3})(\d)/, "$1/$2") .replace(/(\d{4})(\d)/, "$1-$2") .replace(/(-\d{2})\d+?$/, "$1");}
import React from "react";
export function maskCNPJ(cnpj: string) { return cnpj .replace(/\D/g, "") .replace(/(\d{2})(\d)/, "$1.$2") .replace(/(\d{3})(\d)/, "$1.$2") .replace(/(\d{3})(\d)/, "$1/$2") .replace(/(\d{4})(\d)/, "$1-$2") .replace(/(-\d{2})\d+?$/, "$1");}
export default function App() { const [cnpj, setCNPJ] = React.useState(""); return ( <div className="App"> <input type="tel" placeholder="XX.XXX.XXX/XXXX-XX" value={cnpj} onChange={(e) => setCNPJ(maskCNPJ(e.target.value))} /> </div> );}
Observação:
Ao utilizar máscaras, use input com o type='tel', dessa forma o input abrirá o teclado numérico em dispositivos mobile e permitirá a escrita de caracteres especiais.
A função de máscara no exemplo acima já previne que o usuário digite letras quando não for permitido.