Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2016, 19:48
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Разделение цифр пробелом в строке
Есть результат в инпуте.
calculator.answer.value = calculator.answer.value.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');

Мне нужно разделит пробелом, только целое число до дробной части. Т.е. целое число, а после дроби чтобы они оставались не разделёнными. С этим регулярным выражением, что я применяю выше, пробел ставится и в дробной части. Что-то я не могу разобраться, чтобы в этом регулярном выражении поменять, чтобы было так, как мне надо. И если можно объяснить. (хотя может и так будет понятно в самом регулярном)
Спасибо большое за ранее.
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2016, 22:01
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

var str = '123.456'.replace(/(\d+)(?=\.\d+)/, function(a, b) {
  return a.split('').join(' ');
});

alert(str);
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2016, 22:13
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Сообщение от Decode Посмотреть сообщение
var str = '123.456'.replace(/(\d+)(?=\.\d+)/, function(a, b) {
  return a.split('').join(' ');
});

alert(str);
Спасибо, но мне нужен результат такого типа, пример: 99 999 999 999.999999 т.е. разделение на тысячи, миллионы и далее . А в Вашем варианте все цифры в целом числе с пробелом.

Последний раз редактировалось orionpro, 25.03.2016 в 22:42.
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2016, 22:18
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

А это тебе не подойдет?
Ответить с цитированием
  #5 (permalink)  
Старый 25.03.2016, 22:44
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Сообщение от Decode Посмотреть сообщение
А это тебе не подойдет?
Оно то вроде как подходит, вот только многими браузерами не поддерживается, по-этому хотелось бы регулярным выражением вычленить цифры. Но у меня пока не получилось.
В общем то большое спасибо за вариант, я над ним тоже поработаю, но может быть кто-то подскажет, как с помощью регулярного выражения так сделать...
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2016, 03:51
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Сообщение от orionpro
Оно то вроде как подходит, вот только многими браузерами не поддерживается
Полифилл есть.

Сообщение от orionpro
по-этому хотелось бы регулярным выражением вычленить цифры. Но у меня пока не получилось.
Считать цифры в целой части (десятки, сотни, тысячи и т.д.), затем уже расставлять пробелы.
Ответить с цитированием
  #7 (permalink)  
Старый 26.03.2016, 22:09
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Сообщение от Decode Посмотреть сообщение



Считать цифры в целой части (десятки, сотни, тысячи и т.д.), затем уже расставлять пробелы.
Да, про полифилл почитал. Всё же я применил верхнее регулярное выражение и определил функцию, которая вычисляет целое число или есть дробное. Если целое, то просто возвращаю его, если дробное, то применяю метод to.Fixed(3), что в итоге решает проблему с 0.1 + 0.2 и решает мою дилемму с дробным). В итоге я имею число типа 10 000 000.111 и всё довольны. Спасибо. Но в будущем может надо будет применять Ваш вариант. Или делать регулярное, которое не будет трогать дробную часть.
Ответить с цитированием
  #8 (permalink)  
Старый 26.03.2016, 23:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

orionpro,
http://javascript.ru/forum/showthrea...530#post260530
Ответить с цитированием
  #9 (permalink)  
Старый 27.03.2016, 22:00
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Сообщение от рони Посмотреть сообщение
orionpro,
http://javascript.ru/forum/showthrea...530#post260530
Я ждал от Вас сообщение)). Спасибо. Как всегда в точку!
Ответить с цитированием
  #10 (permalink)  
Старый 27.03.2016, 22:14
Аспирант
Отправить личное сообщение для orionpro Посмотреть профиль Найти все сообщения от orionpro
 
Регистрация: 23.12.2015
Сообщений: 39

Сообщение от рони Посмотреть сообщение
orionpro,
http://javascript.ru/forum/showthrea...530#post260530
Можно вопрос ? Насчёт аргументов в той функции, я так понимаю, что аргументом a там идёт то, чем будем заменять, а что идёт аргументом с ?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделение чисел пробелом ASN Общие вопросы Javascript 2 10.02.2016 04:34
Поиск в строке другой подстроки средствами JS YAN Общие вопросы Javascript 13 23.07.2013 09:41
Регулярное выражение: узнать количество цифр. foker Общие вопросы Javascript 10 02.03.2013 00:46
Как определить какого типа данные в строке den9000 Общие вопросы Javascript 7 07.12.2010 10:57
Как изменить адрес в адресной строке браузера? xqx Events/DOM/Window 2 24.04.2010 17:46