是否有一种本机方法可以将字符串从任何区域设置转换为数字

Is there a native way to convert a string from any locale to a number?

本文关键字:任何 字符串 区域 设置 数字 转换 方法 本机 一种 是否      更新时间:2023-09-26

我知道我可以像这样在指定的语言环境中将数字转换为字符串

(1.2).toLocaleString("de-DE") //-> "1,2"

我不知道,或者似乎找不到的是,为什么没有办法逆向而行。例如:

("1,2").fromLocaleString("de-DE").toFloat()

parseFloat("1,2", "de-DE")

我发现从不同语言环境解析数字字符串的唯一解决方案是第三方插件。如果浏览器可以在一个方向上转换,有没有办法让它在另一个方向上转换?

定义自己的函数可能更容易。像这样:

function parseFloatSeparator(str, sep) {
    sep = sep || ".";
    str = str.replace(new RegExp("[^0-9"+sep+"]","g"),"");
    if( sep != ".") str = str.replace(sep,".");
    return parseFloat(str);
}