javascript - 使用 jquery CounterUp 给出 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 = /^[0-9]+$/.test(num);
var isFloat = /^[0-9]+\.[0-9]+$/.test(num);
var decimalPlaces = isFloat ? (num.split('.')[1] || []).length : 0;

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

最佳答案

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

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 中为 2,083,817,然后将“,”替换为“.”以获得所需的输出。可能不是最完美的解决方案,但它确实有效。

关于javascript - 使用 jquery CounterUp 给出 NaN 的百万值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37156065/

相关文章:

javascript - 让 JS API 返回一个 polyfilled DOM 节点

使用 POST 方法进行 javascript 页面重定向

javascript - 为在线多人游戏设置点对点网络

javascript - 如何在 onclick 后立即更改 Accordion 的图标

jquery - 没有类 ="current"的导航

jquery - Jquery 中的 if/else else if 条件

html - 将图像+文本居中的最佳方式 w/text 向右和 img 向左

javascript - 页面加载后的弹出窗口每 24 小时仅打开一次

javascript - `let:let{let:[x=1]}=[alert(1)]` 发生了什么?

javascript - 如何在 Kendo-UI 中绘制条形图的连接线