gpt4 book ai didi

javascript - 如何在javascript中同时输入小数和带有千位分隔符的自动格式?

转载 作者:行者123 更新时间:2023-12-03 08:15:05 24 4
gpt4 key购买 nike

我目前正在尝试创建一个输入,该输入将接受十进制数字,并同时使用千位分隔符自动格式化。

但是,我唯一能做的自动格式千位分隔符就是设置输入类型='文本',我无法输入十进制数字。设置 input type='number' 允许我输入十进制数字,但它不会使用千位分隔符自动格式化

这是代码:

<input
className="cal__section__form__container--input"
placeholder={0}
type="text"
value={displayVal || ""}
onChange={(e) => {
const targ = e.target.value.replace(/\D/g, "") || 0;
const displayVal = parseFloat(targ).toLocaleString(undefined, {
maximumFractionDigits: 2,
});
console.log(displayVal);

}}

/>

最佳答案

您永远不会更新您的 displayVal 状态。在 onChange 之外处理事件逻辑也是一种很好的做法。您的代码应如下所示:

const handleChange = (e) => {
const value = e.target.value;
const clean = value.replace(/,/g, "");
const regex = /^[0-9]*\.?[0-9]*$/;

if (value && clean.match(regex)) {
if (!value.includes(".")) {
const formatted = new Intl.NumberFormat().format(parseFloat(clean));
setDisplayVal(formatted);
} else {
setDisplayVal(value);
}
} else {
setDisplayVal("");
}
};

<input
className="cal__section__form__container--input"
placeholder={0}
type="text"
value={displayVal}
onChange={handleChange}
/>

关于javascript - 如何在javascript中同时输入小数和带有千位分隔符的自动格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69669907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com