哪个javascript函数像parsefloat一样将语言环境作为参数?

Posted

技术标签:

【中文标题】哪个javascript函数像parsefloat一样将语言环境作为参数?【英文标题】:Which javascript function like parsefloat that takes the locale as parameter? 【发布时间】: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()
            ;

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

【问题讨论】:

***.com/a/12694511 javascript parseFloat in Different Cultures的可能重复 【参考方案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()
        ;

【讨论】:

以上是关于哪个javascript函数像parsefloat一样将语言环境作为参数?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript数值转换(Number,parseInt,parseFloat)

JavaScript系统函数(parseInt()函数parseFloat()函数isNaN()函数eval()函数)

JavaScript系统函数(parseInt()函数parseFloat()函数isNaN()函数eval()函数)

JS中 parseFloat() 函数

parseFloat()

JavaScript日常会跳的坑系列