У меня была проблема: у меня была строка, содержащая десятичное число, но пользователь мог написать ее двумя способами, используя точку или запятую:
0,32 0.32
В разных странах используются разные способы отделения целой части числа от десятичной части.
Поэтому я решил преобразовать строку в использование точки всякий раз, когда я нахожу запятую.
Для этого я использовал простое регулярное выражение:
let value = '0,32' value = value.replace(/,/g, '.') //value is now '0.32'
Вы можете сделать обратное, используя заменить(/\./g, ',') (обратите внимание на \ перед . чтобы избежать этого, так как это специальный символ в регулярных выражениях )
Тот флаг g в регулярном выражении гарантирует, что при наличии нескольких экземпляров запятой (или точки во втором примере) все они будут преобразованы.
Это не то, что применимо к нашему варианту использования, и я думаю, что нам нужно провести дополнительную проверку, чтобы проверить целостность наших входных данных здесь, но это только начало.
В моем случае, после выполнения этой замены я вызвал parseFloat(значение), чтобы получить значение с плавающей точкой из строки, а затем я ограничил число десятичных знаков до 2, используя toFixed(2):
value = parseFloat(value).toFixed(2)
Оригинал: “https://flaviocopes.com/how-to-comma-dot-javascript/”