Регулярное выражение для отрицательного формата денег - 2 десятичное место и может go отрицательный - PullRequest
0 голосов
/ 13 января 2020

У меня есть вход и при изменении ввода я меняю его на денежный формат.

<input type="number" class="currency" step="0.01"> 

вот так:

$('input[type="number"].currency').on('input', function(e) {
    this.value = this.value.match(/^-?\d+\.?\d{0,2}/);
});

Однако, так как это срабатывает при каждом нажатии клавиши , это не позволяет мне написать «-» в качестве первого символа; поэтому он стирает его, как только я нажимаю "-"

Какой тип регулярного выражения я могу использовать для этого?

https://jsfiddle.net/4zv9wLr3/ - Вот скрипка, попробуйте написать отрицательное число, оно не позволит вам написать.

1 Ответ

0 голосов
/ 13 января 2020

Когда ввод «число» инициирует событие ввода, значение было получено пустым.

$('input[type="number"].currency').on('input', function(e) {
  if (e.target.value.length !== 0) {
     this.value = this.value.match(/^-?\d+\.?\d{0,2}/);
  }
});

Я добавил защитный элемент, как это, и он работал.

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