Точки вместо запятых
как заменить запятые на точки с помощью JavaScript
Допустим, Вы столкнулись со следующей проблемой: у Вас есть строка, содержащая числа с десятичными значениями, и Вы не знаете каким-образом пользователи отделяли целую часть от десятичной - с помощью точки или с помощью запятой?
0,45
0.45
В разных странах используют разные знаки: точку или запятую - для того, чтобы отделить целую часть числа от десятичной.
Итак, можно конвертировать строку таким образом, чтобы все запятые были заменены точками.
Например, желаемый результат можно получить с помощью простого регулярного выражения:
let value = '0,32';
value = value.replace(/,/g, '.');
// результат '0.32'
Можно сделать и наоборот - заменить все точки запятыми:
value = value.replace(/./g, ',');
Напоминаю: флаг g
в регулярных выражениях позволяет заменить в строке все значения, соответствующие шаблону, то есть в нашем случае таким образом можно заменить все запятые на точки или точки на запятые.
Но несколько точек или несколько запятых в одной строке не соответствуют нашему примеру, так как нам нужно получить число. А это означает, что полученное значение должно соответствовать определенным условиям, то есть быть валидным.
Полученное в результате использования регулярного выражения значение, можно использовать как аргумент для функции parseFloat(value)
, чтобы из строки получить число. Количество знаков после запятой можно ограничить применив toFixed(2)
(аргумент 2 указывает на то, что точность числа будет ограничена сотыми, то есть двумя знаками после запятой):
value = parseFloat(value).toFixed(2);
Спасибо за внимание.