При создании сайтов иногда возникает необходимость вывода цифр с пробелами, как в ценниках на товары. Это необходимо, чтобы пользователю легче было понять какая сумма написана в товаре.
И, действительно, есть разница, когда на какой-то параметр написано число 1239500 или же 1 239 500. Второй вариант более понятен для восприятия. Поэтому составим скрипт, который позволит автоматически добавить нули на нужных нам цифрах.
Этот скрипт можно будет добавить на поле ввода input-а для пользователя.В том случае, если в вашей форме будет ценовое поле, то на лету его введенные цифры будут с пробелами.
Вторая особенность скрипта в том, что он сможет автоматом изменить все цены на вашем сайте с нулями. Это очень меня спасло на Virtualmart 2. В этом компоненте все цены были слитными, без нулей. Но поставив нужный селектор и each() функцию, все цены сразу стали человекопонятными.
Итак скрипт выглядит следующим образом:
<script>
function formatneed(chislo) {
$(chislo).val($(chislo).val().replace(/\s+/g, ''));
$(chislo).val($(chislo).val().replace(/(\d{1,3})(?=((\d{3})*)$)/g, " $1"));
$(chislo).val($(chislo).val().replace(/^\s/g, ''));
}
</script>
Он использует регулярные выражения для работы. Запустить его можно вызвав функцию следующим образом: formatneed('#oldcifri');
Здесь oldcifri - это идентификатор, в котором нужно изменить формат цифр. Например, он может быть таким: <div id="oldcifri">23000</div>. После запуска функции она найдет этот селектор и приведет число к формату 23 000.
Чтобы увидеть работу скрипта на input-элементе, скачайте готовый пример. Если говорить кратко, то там скрипт проверяет, нажата ли клавиша на селекторе #cifri. Если нажата, то запускается функция formatneed. Для работы скрипта требуется библиотека jQuery - не забывайте об этом.