Vamos adicionar esse código HTML como exemplo:
<input type="text" maxlength="9" onkeyup="handleZipCode(event)" />
E esse código em CSS:
input {display: block;height: 22px;border: 1px solid #ccc;border-radius: 4px;padding: 4px 10px;}
E a nossa máscara em Javascript:
const handleZipCode = (event) => {let input = event.targetinput.value = zipCodeMask(input.value)}const zipCodeMask = (value) => {if (!value) return ""value = value.replace(/\D/g,'')value = value.replace(/(\d{5})(\d)/,'$1-$2')return value}
Resultado: