Формат ввода чисел в React - PullRequest
0 голосов
/ 24 июня 2019

Мне интересно, как я могу автоматически отформатировать введенное значение в реакции на денежные значения.

Итак, я хочу разрешить значения этого типа:

Например: если пользователь не хочет писать;

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]
          }}
        />
...