【问题标题】:replace without using a dot how to do?替换不使用点怎么办?
【发布时间】:2020-05-22 06:32:00
【问题描述】:

我有以下代码,但我想替换它而不用点

没有分隔符的标称

function convertToRupiah(angka){
    var rupiah = '';    
    var angkarev = angka.toString().split('').reverse().join('');
      
    for(var i = 0; i < angkarev.length; i++) 
        if(i%3 == 0) rupiah += angkarev.substr(i,3)+'.';
      
    return rupiah.split('',rupiah.length-1).reverse().join('');
}
  
function showkerugian(str) {
      var temuan = str.replace(/\./g, "",); // update pattern to regex in order to replace all `.` occurrences

      $('#nilai_potensi_kerugian').val(convertToRupiah(temuan));
};
    
$('input#nilai_temuan') .on('keyup focusin focusout ', function(event) {
  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.1.1/jquery.min.js"></script>

<input type="text" oninput="showkerugian(this.value)" class="form-control nominal" id="nilai_temuan" name="nilai_temuan" >
<input type="text" class="form-control nominal" name="nilai_potensi_kerugian" id="nilai_potensi_kerugian" readonly>

你能解决这个问题吗,帮帮我

【问题讨论】:

  • 您能否提供输入样本以及您希望结果是什么样的。

标签: javascript jquery regex


【解决方案1】:

假设您希望输入包含点并且输出不包含点:

function convertToRupiah(angka){
    var rupiah = '';    
    var angkarev = angka.toString().split('').reverse().join('');
      
    for(var i = 0; i < angkarev.length; i++) 
        if(i%3 == 0) rupiah += angkarev.substr(i,3);
      
    return rupiah.split('',rupiah.length).reverse().join('');
}
  
function showkerugian(str) {
      var temuan = str.replace(/\./g, "",); // update pattern to regex in order to replace all `.` occurrences

      $('#nilai_potensi_kerugian').val(convertToRupiah(temuan));
};
    
$('input#nilai_temuan') .on('keyup focusin focusout ', function(event) {
  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.1.1/jquery.min.js"></script>

<input type="text" oninput="showkerugian(this.value)" class="form-control nominal" id="nilai_temuan" name="nilai_temuan" >
<input type="text" class="form-control nominal" name="nilai_potensi_kerugian" id="nilai_potensi_kerugian" readonly>

问题是在这条线上 if(i%3 == 0) rupiah += angkarev.substr(i,3)+'.';你加了一个“.”

【讨论】:

  • 为什么名义金额不同?
  • 再次检查我的答案,你减去了长度 - 1,我也删除了那个位。
  • 如果 foreach 会怎样?
  • 您能说得更具体些吗?对于每个什么?
  • 查看上图,当我保存数据时只存储了一个数据是另一个变成了null。用foreach怎么样?
猜你喜欢
  • 2010-09-07
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 2010-12-02
相关资源
最近更新 更多