【发布时间】:2021-01-17 21:11:33
【问题描述】:
我想在输入 5 个这样的字符后添加 - 字符:
但我明白了:
我的代码:
interface IAddress {
bairro: string;
cep: string;
cidade: string;
complemento: string;
rua: string;
numero: string;
}
export default function App() {
const [address, setAddress] = useState<IAddress>({
bairro: "",
cep: "",
cidade: "",
complemento: "",
rua: "",
numero: ""
});
const handlerCep = (e: any) => {
const { value } = e.target;
const cep = value.replace(/[^0-9]/g, "");
setAddress({
...address,
cep: address.cep.length === 5 ? `${cep}-` : cep
});
};
return (
<div className="App">
<input
type="tel"
maxLength={9}
value={address.cep}
onChange={(e) => handlerCep(e)}
// onBlur={(ev) => findCep(ev)}
required
id="cep"
/>
</div>
);
}
我在某些时候吓坏了,我无法想象我该如何解决这个问题 现场示例:
代码沙箱:https://codesandbox.io/s/silly-sea-o4gd5?file=/src/App.tsx
【问题讨论】:
-
也许你可以使用类似的东西:npmjs.com/package/react-input-mask 来解决你的问题。
-
这能回答你的问题吗? Javascript Input Text Masking without Plugin
-
我遇到了困难,你能帮帮我吗?我删除了密钥,但每当我输入 6 时,我输入它都会替换字符串