使用jQuery Globalize格式化数字

don*_*don 2 jquery localization javascript-globalize

我正在尝试使用Globalize进行适当的本地化自动格式化数字.当用户输入数值时,我需要Globalize来读取它,以正确的格式解析它,然后在用户输入的字段中输出它.

我试过这样:

$(document).on('change','.format-me',function(){
    var value = $(this).val();
    Globalize.culture("en-US");
    console.log(Globalize.format(value));
});
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为记录的数字看起来与用户输入的数字完全相同.为什么Globalize不会根据需要更改格式?

Juk*_*ela 11

记录的数字看起来与输入的数字完全相同的原因是您Globalize.format()使用字符串参数调用- 它将简单地返回其参数,如文档所示,假设您使用的是Globalize.js(最初称为jQuery Globalize,后来制作)独立于jQuery).HTML中的输入控件的值被视为字符串,并且要作为数字处理,它需要以某种方式转换.

在这种情况下,它应该被解析Globalize.parseFloat(),并且当记录它时,你需要传递例如格式参数n2(因为对于数字,默认格式是i,很少有用 - Globalize.js的一个缺陷):

$(document).on('change','.format-me',function(){
    var value = $(this).val();
    Globalize.culture("en-US");
    var num = Globalize.parseFloat(value);
    if(isNaN(num)) console.log('Parsing failed');
    console.log(Globalize.format(num, "n2"));
});
Run Code Online (Sandbox Code Playgroud)

但是,我没有看到以本地化格式记录数字的重点.用户以本地化格式输入数字,但对于任何处理(客户端或服务器端),它应以国际化格式存储.随后可以在向用户显示某些结果时使用本地化格式.