Как отформатировать валюту с помощью JavaScript и проверить - PullRequest
1 голос
/ 26 июня 2019

Я использую реагировать и не хочу форматировать и проверять входное значение.

мои варианты использования:

1- при вводе позволят записывать только цифры, а точка [.] 2- значение может быть макс. 1000 3- если пользователь напишет, например:

если 200 будет 200,00

если 99 будет 99,00

если 10000 будет 1000,00

если 22222 будет 222,22

и мне нужно предотвратить написание двух точек, там должна быть только одна точка и до последнего значения.

что я пытаюсь?

Функция onKeyPress:

onKeyPress={e => {
            const BIRTHNUMBER_ALLOWED_CHARS_REGEXP = /^[0-9.]*$/;
            if (!BIRTHNUMBER_ALLOWED_CHARS_REGEXP.test(e.key)) {

              e.preventDefault();
            }
          }}

. Таким образом, я запрещаю любые символы, кроме точки и цифры.Но с другими вариантами использования я не знаю, как выяснить

1 Ответ

1 голос
/ 26 июня 2019

Всегда лучше делегировать валидацию определенным библиотекам, таким как Yup или какой-либо другой библиотеке.

Ваша проблема может быть разбита на две проблемы: проверка и затем форматирование.

Вы можете легко проверить, что строка является плавающей точкой.число с плавающей точкой содержит только цифры и точку (максимум одну).

const isAFloat = str => str.split('').filter(char => char !== '.').every(char => !Number.isNaN(parseInt(char))) && 
str.indexOf('.') === str.lastIndexOf('.')

, чтобы отформатировать число, которое вы можете затем сделать, это даст вам требуемый формат

parseFloat(str,10).toFixed(2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...