Есть ли способ преобразовать строку из любой локали в число?

Я знаю, что я могу преобразовать число в строку в указанной локали, например

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

То, что я не знаю или не могу найти, - это то, почему нет способа вернуться в обратном направлении. Например:

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

или

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

Единственными решениями, которые я нашел для анализа строки из другой локали, были сторонние плагины. Если браузер может конвертировать в одном направлении, есть ли способ конвертировать его в другом направлении?

1 ответ

Может быть проще определить вашу собственную функцию. Что-то вроде этого:

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

licensed under cc by-sa 3.0 with attribution.