从输入字段中取出逗号,将其删除,然后使用不同值的逗号来存储值

时间:2018-07-11 03:19:14

标签: javascript jquery html

我有一个输入框:

<input id='first' placeholder="0" type="text" maxlength="10"autocomplete="off"/>

当输入数字时会自动添加逗号:

$("#first").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, ",")
          ;
          });
});

我想将输入值(带逗号)存储在var中,并用jquery代码删除逗号,然后将输入的新值(一个不带逗号)用作新变量。

var firstValue = Number($('#first').val());

3 个答案:

答案 0 :(得分:0)

您可以使用replace()函数从字符串中删除某些字符串。

$("#first").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, ",")
          ;
      });
      
      var firstValue = Number($('#first').val().replace(/,/g,''));
      console.log(firstValue);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='first' placeholder="0" type="text" maxlength="10"autocomplete="off"/>

答案 1 :(得分:0)

只需使用.replace(/,/g, '')

$("#first").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, ",")
          ;
          });
});

$("#btn").click(function(event) {
var firstValue = Number($('#first').val().replace(/,/g, ''));
console.log(firstValue);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='first' placeholder="0" type="text" maxlength="10"autocomplete="off"/>
<input type='button' id=btn value=click />

答案 2 :(得分:0)

通过使用replace函数,您可以轻松地做到这一点,它需要使用正则表达式和第二个参数作为新字符,因为您要删除逗号,因此第二个参数是空字符串。

$("#first").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, ",")
          ;
          });
});



$("#rmCommas").click(function(){
  var firstValue = $('#first').val();
  var noCommas = firstValue.replace(/,/g , "");
  var asNumber = Number(noCommas);
  alert(asNumber);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id='first' placeholder="0" type="text" maxlength="10"autocomplete="off"/>
<button id="rmCommas">Remove Commas</button>