检测到数字后添加一个符号作为后缀

Add a symbol as suffix after detecting a number

我想用 % 为数字添加后缀,而不是前面的当前 ₹ 符号,同时也删除 .00 小数点。所以结果显示为 9% 而不是 ₹9.00

我不确定是否可以修改此脚本以满足我的需要。这是我的代码:

$('.percent').each(function() {
  var monetary_value = $(this).text();
  
  if ($.isNumeric(monetary_value) && (monetary_value < 100 || monetary_value.length == 2)) {
    var i = new Intl.NumberFormat('en-IN', {
      style: 'currency',
      currency: 'INR'
    }).format(monetary_value);
  }
  
  $(this).text(i);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<div class="percent">9</div>

演示 JSFiddle:http://jsfiddle.net/4p98aw6u/

要执行您需要的操作,只需删除 Intl.NumberFormat() 的用法,并将 % 字符附加到值的末尾即可。

另请注意,在用于任何比较之前,使用 parseInt()val() 显式转换为整数。

$('.percent').each(function() {
  var monetary_value = parseInt($(this).text(), 10);
  var i;
  
  if (monetary_value && (monetary_value < 100 || monetary_value.length == 2)) {
    i = monetary_value + '%';
  }
  
  $(this).text(i);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<div class="percent">9</div>

正则表达式可能是完成这项工作的最简单方法,具体取决于输入

const monetary_value = $(this).text(); // ₹9.00
const converted_value = monetary_value.match(/\d+?./)[1] + "%"

参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match 特别是因为当匹配为空时你应该在上面添加一些错误检查