javascript - 如何恢复到LocaleString

标签 javascript jquery globalization

我需要将格式化数字转换为 JS 默认数字格式。

这是我的代码:

String.prototype.toJsFloatFormat = function() {
          debugger;
          var newVal = this;
          return newVal;
        }
//Example of use
var input = 10000.22; //default js format
var formatted = input.toLocaleString("es"); // result is: 10.000,22
var unformatted = formatted.toJsFloatFormat(); //expected result = 10000.22;

问题是当我需要获取格式化数字 (10.000,22) 并使用此格式化数字 (parseFloat(10.000,22) + 1000) 进行操作时,我得到了不好的结果 (parseFloat(10.000,22) + 1000 = 1010)

提前致谢。

最佳答案

这并不容易。大多数评论都说“不要尝试-
对数字本身进行计算,而不是格式化值”。

您需要弄清楚十进制和千位分隔符是什么。为此,您需要知道数字转换为哪个区域设置。

(1234.5).toLocaleString("es").match(/(\D+)/g);
// -> [".", ","]

一旦你有了它,你可以替换格式化字符串中的字符。
function unformatString(string, locale) {

    var parts = (1234.5).toLocaleString(locale).match(/(\D+)/g);
    var unformatted = string;

    unformatted = unformatted.split(parts[0]).join("");
    unformatted = unformatted.split(parts[1]).join(".");

    return parseFloat(unformatted);

}

无法确定语言环境 - 您必须知道它并将其传递给函数。

关于javascript - 如何恢复到LocaleString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950796/

相关文章:

c# - 如何验证字段长度

javascript - 我可以在 Chrome 扩展程序中包含 CryptoJS 文件吗?

javascript - 谷歌回调API

javascript - 用字符串句子将每个单词与元素分开,但有一些跨度

asp.net-mvc - 如何全局化 ASP.NET MVC View (特别是十进制分隔符)?

.NET 全局化是周末吗?

javascript - Bootstrap 3 DateTimePicker v4 禁用月份

javascript - 将按钮绑定(bind)到键盘按钮和声音

jquery - 浏览器不响应 destroy.js.erb

jquery - 使用 CSS 选择没有子列表的列表项