Регулярное выражение для создания HTML входных чисел c только с отрицательными значениями - PullRequest
0 голосов
/ 07 августа 2020

У меня два текстовых поля. Один предназначен только для целых чисел, а другой - для любого значения numeri c. Оба должны также получить отрицательные значения. Мой код

$(".numberOnly").on("keypress keyup blur", function(event) {
  $(this).val($(this).val().replace(/[^0-9\.]/g, ''));
  if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
    event.preventDefault();
  }
});

$(".intOnly").on("keypress keyup blur", function(event) {
  $(this).val($(this).val().replace(/-?\d+[^0-9]+/, ""));
  if ((event.which < 48 || event.which > 57)) {
    event.preventDefault();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span>Float</span>
<input type="text" name="numeric" class='numberOnly'>
<div>Numeric values With Decimal Point </div>
<br/> <br/> <br/>

<span>Int</span>
<input type="text" name="numeric" class='intOnly'>
<div>Only integers (No decimal point) </div>

Он работает нормально для числовых c значений, но не принимает отрицательные значения. какие изменения мне следует сделать?

1 Ответ

0 голосов
/ 07 августа 2020

Попробуйте ввести код ниже

$(document).ready(function(){
  $("input").on("keydown", function(e) {

  if(!((e.keyCode > 95 && e.keyCode < 106)
      || (e.keyCode > 47 && e.keyCode < 58) 
      ||  $(this).val() === '' && e.keyCode === 189
      || e.keyCode == 8)) {
        return false;
    }
});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...