Мне интересно, как я могу автоматически отформатировать введенное значение в реакции на денежные значения.
Итак, я хочу разрешить значения этого типа:
Например: если пользователь не хочет писать;
20 - будет 20.00
если 1000, то это будет 1 000 000
Я не хочу запрещать любые другие пользовательские вводы и показывать ошибку, если так.
Как я могу сделать это в реакции?
Я использую реагирующую таблицу, так что я ввел некоторую редактируемую ячейку. Из-за того, что div ведет себя как ввод: я попробовал это:
<div
className="coastInput"
contentEditable
onBlur={e => {
const re = /^[0-9\b,.]+$/;
if (e.target.innerHTML == "" || re.test(e.target.innerHTML)) {
this.setState({
isError: false
});
const data = [...this.state.data];
data[cellInfo.index][cellInfo.column.id] = e.target.innerHTML;
this.setState({ data });
editedData.push({
total: this.state.data[cellInfo.index][cellInfo.column.id],
id: cellInfo.row._original.id,
});
} else {
return (
this.setState({
isError: true
}),
alert("Just numbers allowed")
);
}
}}
dangerouslySetInnerHTML={{
__html: this.state.data[cellInfo.index][cellInfo.column.id]
}}
/>