Novas funcionalidades EM BREVE!

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.