Может ли jQuery добавлять запятые, когда пользователь печатает цифры? - PullRequest
31 голосов
/ 13 апреля 2010

Как бы я использовал динамическое добавление запятых, когда пользователь вводит числа? Есть ли хороший форматер чисел, который поможет? Я должен добавить эти цифры позже, так что в конце концов мне придется убрать запятые в конце строки. Но экран должен показывать запятые для лучшей читаемости.

Ответы [ 3 ]

84 голосов
/ 13 апреля 2010

Запустите фрагмент кода, чтобы увидеть, как он работает

$('input.number').keyup(function(event) {

  // skip for arrow keys
  if(event.which >= 37 && event.which <= 40) return;

  // format number
  $(this).val(function(index, value) {
    return value
    .replace(/\D/g, "")
    .replace(/\B(?=(\d{3})+(?!\d))/g, ",")
    ;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input class="number">
1 голос
/ 24 декабря 2016

Вот реализация ответа @ maček в vanilla JS, если вы не хотите использовать jQuery:

var el = document.querySelector('input.number');
el.addEventListener('keyup', function (event) {
  if (event.which >= 37 && event.which <= 40) return;

  this.value = this.value.replace(/\D/g, '')
                         .replace(/\B(?=(\d{3})+(?!\d))/g, ',');
});
<input class="number">
0 голосов
/ 20 сентября 2018
        <script>
        function costt() {   
        var costs = document.getElementById('cost').value;   
            if(costs != '') {          
     //   alert("ok");     
                cost.value = cost.value.replace(/\D/g, '').replace(/\B(?=(\d{3})+(?!\d))/g, ',');
            } else {             
     //   alert("lol");     
                cost.value= 0;
            }        
        }
        </script>

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