Reactjs 如何在Javascript中编辑7位数的第二位数字?

Reactjs 如何在Javascript中编辑7位数的第二位数字?,reactjs,number-formatting,Reactjs,Number Formatting,我正在开发一个ReactJS应用程序,并且有一个可以有数百万数字的输入。我使用以下函数将数字格式化为逗号: return Number(number).toLocaleString('en-GB', { minimumFractionDigits: 2 }); 在输入的onChange道具上,我有以下命令来阻止光标跳到末尾: const caret = e.target.selectionStart; const element = e.target;

我正在开发一个ReactJS应用程序,并且有一个可以有数百万数字的输入。我使用以下函数将数字格式化为逗号:

  return Number(number).toLocaleString('en-GB', { minimumFractionDigits: 2 });
在输入的onChange道具上,我有以下命令来阻止光标跳到末尾:

        const caret = e.target.selectionStart;
        const element = e.target;
        window.requestAnimationFrame(() => {
          element.selectionStart = caret;
          element.selectionEnd = caret;
        });
尝试更改一百万位数中的第二位数时,删除第二个零会导致光标出现在第二位数之后,而不是第一位数。删除七位数中的数字时,如何确保光标出现在预期位置

感谢您的建议

const[value,setValue]=useState(“1000000”);
const displayValue=Number(value).toLocaleString(“en GB”{
最小分数位数:2,
最大分数位数:2
});
常量handleChange=e=>{
const oldLen=displayValue.length;
常量元素=e.目标;
让rawString=element.value;
让插入符号=element.selectionStart;
//块删除小数点
if(插入符号===element.value.length-2&&element.value.lengtholdLen){
如果(
(firstCommaAt===3&&caret>firstCommaAt)||
firstCommaAt==4||
纽伦===7
) {
插入符号+=1;
}
}
如果(新的<旧的){
if(firstCommaAt===1&&caret>firstCommaAt){
插入符号-=1;
}
}
//存储可解析值
setValue(rawString.replace(/,/g,”);
window.requestAnimationFrame(()=>{
element.selectionStart=插入符号;
element.selectionEnd=插入符号;
});
};
返回(
handleChange(e)}/>
)

工作示例:

插入符号-1
?一个连续的例子将大大提高你得到一个好答案的机会