首页 > 解决方案 > Javascript中输入的逗号分隔数字

问题描述

在下面的过程中,输入数字 9999 是没有问题的。

但是,当输入为 9,999 时,结果为 NaN。

如何进行编辑?我需要能够使用漫画数字。

我取输入中输入的数字的百分比并将其打印到下面的输入中。

function yirmibes() {
  num1 = document.getElementById("firstNumber").value;
  document.getElementById("result").value = (num1 / 100) * 25;
}

function elli() {
  num1 = document.getElementById("firstNumber").value;
  document.getElementById("result").value = (num1 / 100) * 50;
}

function format(input) {
  var nStr = input.value + '';  
  nStr = nStr.replace(/\,/g, "");
  x = nStr.split('.');
  x1 = x[0];
  x2 = x.length > 1 ? '.' + x[1] : '';  
  var rgx = /(\d+)(\d{3})/;
  while (rgx.test(x1)) {
    x1 = x1.replace(rgx, '$1' + ',' + '$2');
  }
  input.value = x1 + x2;
}
Number: <input type="text" id="firstNumber" onkeyup="format(this)" />
<br/><br/>
<input type="button" onClick="yirmibes()" Value="25%" />
<input type="button" onClick="elli()" Value="50%" />
<br/><br /> The Result is :
<input type="text" id="result" Value="" />

标签: javascriptregexdecimalnan

解决方案


计算结果时去掉逗号:

function yirmibes()
{
  num1 = document.getElementById("firstNumber").value.replace(',', '');
  document.getElementById("result").value = (num1 / 100) * 25;
}
function elli()
{
  num1 = document.getElementById("firstNumber").value.replace(',', '');
  document.getElementById("result").value = (num1 / 100) * 50;
}

推荐阅读