【问题标题】:Which javascript function like parsefloat that takes the locale as parameter?哪个javascript函数像parsefloat一样将语言环境作为参数?
【发布时间】:2014-10-17 09:51:15
【问题描述】:

问题:

我得到了这个输入:

"23,234.34"

使用以下语言环境, locale = "我们-美国"

我想要这个结果:23234.34 in number var.

所以我使用 parseFloat 但这个函数不将语言环境作为参数, 当我使用字符串“23,234.34”时,函数返回不是数字(NAN)。

if ($('input#feesamount').val() != '') {
            $funding = {
              feeAmount: parseFloat($('input#feesamount').val()),
              acquirerregistrationid: $('input#registerid').val(),
              acquirer: $('select#acquirer').val()
            };

你知道可以帮助我的函数吗?

【问题讨论】:

标签: javascript


【解决方案1】:

如果您只处理美国格式,您可以使用string.replace(/,/g, '')。否则,你想使用这个库:http://numeraljs.com/

【讨论】:

  • 如何使用 numericjs 获取输入中的数字?
【解决方案2】:

您可以编写自己的代码,使用 switch 根据区域设置处理价格/费用并返回浮点数。

var price = '23,234.34';
var locale = 'us-US';

function parsePrice(price, locale) {
    switch (locale) {
        case 'us-US':
            price = price.replace(',', '');
            break;
    }
    return parseFloat(price);
}

parsePrice(price, locale); // 23234.34

DEMO

【讨论】:

    【解决方案3】:

    尝试将 ',' 替换为 ''(空字符串)

    if ($('input#feesamount').val() != '') {
            $funding = {
              feeAmount: parseFloat(($('input#feesamount').val()).replace(/,/g,'')),
              acquirerregistrationid: $('input#registerid').val(),
              acquirer: $('select#acquirer').val()
            };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-18
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      相关资源
      最近更新 更多