Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.01.2017, 11:57
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

10000 => 10 000
Вопрос по "большим" числам.
Надо разделить пробелами большие числа.
Например:
число 10000 (десять тысяч) надо показать в таком виде: 10 000.
число 1000000 => 1 000 000
...
Если ли такая возможность в ExtJS?
Ответить с цитированием
  #2 (permalink)  
Старый 31.01.2017, 12:14
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

При сравнивании, вы сравниваете число 10000 с строкой 10 000
function reFormat(num){
	return ('' + num).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ')
}

alert(reFormat(10000));
alert(reFormat(1000000));
Ответить с цитированием
  #3 (permalink)  
Старый 31.01.2017, 12:30
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

А так что бы оставалось числом - никак?
Ответить с цитированием
  #4 (permalink)  
Старый 31.01.2017, 12:47
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от potkin
А так что бы оставалось числом - никак?
В школу в 1 класс, чтоб учитель вбил в голову, что такое числа и как пишутся
Жесть, как-же вы еще за программирование беретесь, если не понимаете, что такое число и как оно пишется
Ответить с цитированием
  #5 (permalink)  
Старый 31.01.2017, 12:58
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

Сообщение от Poznakomlus Посмотреть сообщение
В школу в 1 класс, чтоб учитель вбил в голову, что такое числа и как пишутся
Жесть, как-же вы еще за программирование беретесь, если не понимаете, что такое число и как оно пишется
Poznakomlus - У меня много приложений на WinForms.
В WinForms есть такая возможность, вшита в виджеты (контролы, компоненты). То есть, разделять число. И софтина видет это не как текст, а именно как число.
Сейчас переписываю WinForm-приложения в WebForm. Большую часть уже переписал.
Заказчик требует отображение числа в понятном ему формате, в данном случае с пробелами, у конкурентов такой формат отображения есть (у них тоже Web-сервисы: Ангуляр 1).
Вот, я подумал, что ExtJS такой крутой и дорогой, может и у него есть такое "готовое" решение.
Ну и вопрос в том, что раз я задал вопрос - значит не смог его решить и может кто сталкивался и знает как решить данную проблему.

П.С.
"как-же вы еще за программирование беретесь"?
:-) :-) :-)

П.С.2.
Гуглом пользоваться умею:
js Разделение разрядов числа пробелами

Меня интересует ExtJS.

Последний раз редактировалось potkin, 31.01.2017 в 13:01.
Ответить с цитированием
  #6 (permalink)  
Старый 31.01.2017, 14:36
Аватар для kolka
Кандидат Javascript-наук
Отправить личное сообщение для kolka Посмотреть профиль Найти все сообщения от kolka
 
Регистрация: 07.06.2010
Сообщений: 146

Docs
Ext.util.Format.decimalSeparator = '.';
Ext.util.Format.thousandSeparator = ' ';
Ext.util.Format.numberRenderer('0.000');


Ext.util.Format.number(123456, '0,0.00')
выводит
"123 456.00"
Ответить с цитированием
  #7 (permalink)  
Старый 31.01.2017, 15:59
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

А можно это как-то применить для: textfield или numberfield?
Ответить с цитированием
  #8 (permalink)  
Старый 03.02.2017, 00:15
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Посмотрел в код, боюсь что нет. :(
Ответить с цитированием
  #9 (permalink)  
Старый 03.02.2017, 11:45
Аватар для kolka
Кандидат Javascript-наук
Отправить личное сообщение для kolka Посмотреть профиль Найти все сообщения от kolka
 
Регистрация: 07.06.2010
Сообщений: 146

renderTpl - ?
Ответить с цитированием
  #10 (permalink)  
Старый 04.02.2017, 04:45
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

renderTpl ничем не поможет, это шаблон для создания разметки HTML, из которой потом получаются элементы DOM для поля. Тут проблема в другом: <input> элементы используются напрямую и вы редактируете то, что видите. Если бы <input type="number"> был чуть поумнее, то в общем можно было бы просто его использовать и забыть о проблеме, но к сожалению, толку от этого элемента на данный момент весьма мало.

Один из вариантов решения проблемы - при каждом изменении значения в поле ввода парсить текст, валидировать и выводить обратно в заданном формате. Это можно было бы сделать, если бы не запутанные потроха Ext.form.field.Base и Ext.form.field.Field, которые подобные штуки делать могут, но со скрипом. Плюс юзеры несколько теряются, когда в поле ввода появляются символы, которые они не вводили (разделители), или наоборот исчезают там, где вроде только что нажал кнопку.

Другой вариант - разделить редактирование и отображение. Скажем, сделать <input> прозрачным и подсунуть под него <div> с выводом значения. В таком случае проблема с валидированием ввода сводится к банальному выкусыванию ненужных символов, а форматировать можно уже как угодно - ввод и вывод разделены.

Но в таком случае вылезают проблемы с выделением текста. :(

В общем, как ни крути - браузеры это хлам. :(
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рассылка по мобильному мессенджеру Viber viberpromotion Работа 0 15.09.2015 15:17
Сравнение массивов. Level 2 nikola_blin Общие вопросы Javascript 3 13.06.2015 04:05
Вывод текста на страницу html maxangel Общие вопросы Javascript 3 28.08.2013 18:24
JavaScript разработчик (Москва, 60 000 - 80 000 net, возможно удалённо) Hater Работа 16 04.07.2013 11:17
Глюк с математикой demoniqus Общие вопросы Javascript 5 16.08.2012 17:09