Как сделать, чтобы при вводе числа в поле добавлялись разделители групп разрядов?
Как сделать, чтобы при вводе числа в поле добавлялись разделители групп разрядов?
как на сайте сбербанка http://www.sberbank.ru/moscow/ru/per...uying_project/ вводишь в поле "5000000", число преобразуется в "5 000 000". Если снова кликнул на поле, число превращается обратно в "5000000". |
Задавал этот вопрос ранее. Почитай, может выцарапаешь что
http://javascript.ru/forum/ajax/4275...hhyu-ajax.html |
var n = '5000000'; //все значения в полях ввода, это строки //форматируем по сотням n = n.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' '); alert(n) //возвращаем "в кучу" n = n.replace(/\s/g, '') alert(n) |
Цитата:
|
Цитата:
<input onblur="var n=$(this).val(); n = n.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' '); $(this).val(n)" name="cost" value="" type="number"> после потери фокуса введенное в него число должно разделяться пробелами. но вместо этого если в числе больше 3 знаков, то оно исчезает. |
Цитата:
Наверно именно такое называют "жиквери головного мозга"... Поскольку это заменяется на <input onblur="this.value = this.value.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');" name="cost" value="" type="number"> |
Цитата:
|
:write:
Цитата:
Цитата:
|
:-?
<input onblur="this.value = this.value.replace(/[^\d]/g, '').replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ')" name="cost" value="" onfocus="this.value = this.value.replace(/\s/g, '')" > |
Цитата:
|
а как сделать, чтобы можно было вводить еще и дробные значения с разделителем-запятой?
|
Цитата:
Цитата:
|
Цитата:
И ссылка из того перечня... http://habrahabr.ru/post/131340/ |
Цитата:
<input onblur="this.value = this.value.replace(/[^\d.,]/g, '').replace(/(\d+)([.,]\d+)?/g, function (c, b, a) { return b.replace(/(\d)(?=(\d{3})+$)/g, '$1 ') + (a ? a : '') })" name="cost" value="" onfocus="this.value = this.value.replace(/\s/g, '');this.focus()" > |
Часовой пояс GMT +3, время: 06:40. |