Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2016, 17:07
Новичок на форуме
Отправить личное сообщение для Maxican Посмотреть профиль Найти все сообщения от Maxican
 
Регистрация: 01.03.2016
Сообщений: 2

Форматирования чисел (запятые вместо точек)
Доброго времени суток.
Во время запила калькулятора для сайта-магазина, в котором производится подсчет выбранных клиентом комплектующих и вывод окончательной суммы, у работодателя возникло страшное желание заменить точки (десятичные разделители) в числах, на запятые.

Например:
- у нас есть деталь стоимостью 400.53;
- клиент указывает, что он хочет приобрести 3 детали;
- калькулятор ему выдает результат: 1201.59.

Так вот, нужно, что бы результат был таким: 1 201,59

Стоимость задается через PHP ( $price="400.53"; ), оттуда же его берет калькулятор, что бы умножить на количество деталей.

Работодатель также хочет иметь возможность самостоятельно менять стоимость товара используя в числах именно запятую вместо точки. Другими словами JS-скрипт должен вытягивать из PHP число с запятой, после чего производить его подсчет на основании выбранных клиентом данных.

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

Буду благодарен любой подсказке.


*актуальных решений этой проблемы в Google не смог найти
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2016, 17:20
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Maxican,
JS для своих надобностей при получении чисел из PHP или элементов HTML должен сразу же преобразовывать их в формат без пробелов с точкой, а при выводе на экран или отдаче в PHP - преобразовывать в формат с запятой и с пробелами - где надо.
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2016, 02:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var i = 1201.59;
var re = /(?=\B(?:\d{3})+(?!\d))/g;
var j = i.toString().replace( re, ' ' ).replace('.', ',');
alert(j)
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2016, 09:28
Новичок на форуме
Отправить личное сообщение для Maxican Посмотреть профиль Найти все сообщения от Maxican
 
Регистрация: 01.03.2016
Сообщений: 2

Сообщение от Deff Посмотреть сообщение
var i = 1201.59;
var re = /(?=\B(?:\d{3})+(?!\d))/g;
var j = i.toString().replace( re, ' ' ).replace('.', ',');
alert(j)
Спасибо. Действительно, все довольно просто.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
простая форма автозамена точек на запятые - 150 р wlad2 Работа 11 22.07.2015 17:21
RegExp - точки, замена точек на запятые dropoff Общие вопросы Javascript 1 24.11.2012 21:22