Novas funcionalidades EM BREVE!

Máscara de Cartão de Crédito

export function maskCreditCardNumber(credit_card: string) {
return credit_card
.replace(/\D/g, "")
.replace(/(\d{12})(\d)/, "$1 $2")
.replace(/(\d{8})(\d)/, "$1 $2")
.replace(/(\d{4})(\d)/, "$1 $2")
.slice(0, 19);
}
import React from "react";

export function maskCreditCardNumber(credit_card: string) {
return credit_card
.replace(/\D/g, "")
.replace(/(\d{12})(\d)/, "$1 $2")
.replace(/(\d{8})(\d)/, "$1 $2")
.replace(/(\d{4})(\d)/, "$1 $2")
.slice(0, 19);
}

export default function App() {
const [creditCardNumber, setCreditCardNumber] = React.useState("");
return (
<div className="App">
<input
type="tel"
placeholder="XXXX XXXX XXXX XXXX"
value={creditCardNumber}
onChange={(e) => setCreditCardNumber(maskCreditCardNumber(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.