Javascript 使用jquery计数器为NaN提供百万价值

Javascript 使用jquery计数器为NaN提供百万价值,javascript,jquery,html,nan,Javascript,Jquery,Html,Nan,我有一个格式为2.083.817的值。当使用jquery脚本CounterUp时,它会给我一个NaN-可能是因为有两个“.”分隔符 正在使用以下命令转换该值: var nums = []; var divisions = $settings.time / $settings.delay; var num = $this.text(); var isComma = /[0-9]+,[0-9]+/.test(num); num = num.replace(/,/g, ''); var isInt =

我有一个格式为2.083.817的值。当使用jquery脚本CounterUp时,它会给我一个NaN-可能是因为有两个“.”分隔符

正在使用以下命令转换该值:

var nums = [];
var divisions = $settings.time / $settings.delay;
var num = $this.text();
var isComma = /[0-9]+,[0-9]+/.test(num);
num = num.replace(/,/g, '');
var isInt = /^[0-9]+$/.test(num);
var isFloat = /^[0-9]+\.[0-9]+$/.test(num);
var decimalPlaces = isFloat ? (num.split('.')[1] || []).length : 0;

我不太确定如何让脚本使用两个“.”分隔符处理值。

虽然我认为有一种更简单的方法,但您可以使用

Number("2.083.817".replace(new RegExp("\\.", 'g'), ""))
或者一般地

Number(number_variable.replace(new RegExp("\\.", 'g'), ""))
如果要在循环中应用此替换,我建议您将
regex
存储到前面的变量中。比如:

regex_replacement = new RegExp("\\.", 'g')

for ....... {
    actual_number = Number(number_variable.replace(regex_replacement, ""))
}

注:根据

改编,解决方案在大多数情况下都非常接近,您将很难找到它

for (var i = divisions; i >= 1; i--) {

      // Preserve as int if input was int
     var newNum = parseInt(num / divisions * i);

      // Preserve float if input was float
        if (isFloat) {
            newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces).replace(".", ",");
       }

                    // Preserve commas if input had commas
                    if (isComma) {
                        while (/(\d+)(\d{3})/.test(newNum.toString())) {
                            newNum = newNum.toString().replace(/(\d+)(\d{3})/, '$1' + '.' + '$2');
                        }
                    }

                    nums.unshift(newNum);
                }

我只是将其反转,使其在html中为2083817,然后将“.”替换为“.”以获得所需的输出。可能不是最完美的解决方案,但它很有效。

为什么不能用逗号提供数字?百万使用逗号而不是点,所以基本上你有一个浮点数,所以很明显,它抛出的不是一个数字错误值代表什么?它是一个丹麦百万值。。。