Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разделение цифр пробелом в строке (https://javascript.ru/forum/misc/62129-razdelenie-cifr-probelom-v-stroke.html)

orionpro 25.03.2016 19:48

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

Мне нужно разделит пробелом, только целое число до дробной части. Т.е. целое число, а после дроби чтобы они оставались не разделёнными. С этим регулярным выражением, что я применяю выше, пробел ставится и в дробной части. Что-то я не могу разобраться, чтобы в этом регулярном выражении поменять, чтобы было так, как мне надо. И если можно объяснить. (хотя может и так будет понятно в самом регулярном)
Спасибо большое за ранее. :)

Decode 25.03.2016 22:01

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

alert(str);

orionpro 25.03.2016 22:13

Цитата:

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

alert(str);

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

Decode 25.03.2016 22:18

А это тебе не подойдет?

orionpro 25.03.2016 22:44

Цитата:

Сообщение от Decode (Сообщение 412046)
А это тебе не подойдет?

Оно то вроде как подходит, вот только многими браузерами не поддерживается, по-этому хотелось бы регулярным выражением вычленить цифры. Но у меня пока не получилось.
В общем то большое спасибо за вариант, я над ним тоже поработаю, но может быть кто-то подскажет, как с помощью регулярного выражения так сделать...

Decode 26.03.2016 03:51

Цитата:

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

Полифилл есть.

Цитата:

Сообщение от orionpro
по-этому хотелось бы регулярным выражением вычленить цифры. Но у меня пока не получилось.

Считать цифры в целой части (десятки, сотни, тысячи и т.д.), затем уже расставлять пробелы.

orionpro 26.03.2016 22:09

Цитата:

Сообщение от Decode (Сообщение 412069)



Считать цифры в целой части (десятки, сотни, тысячи и т.д.), затем уже расставлять пробелы.

Да, про полифилл почитал. Всё же я применил верхнее регулярное выражение и определил функцию, которая вычисляет целое число или есть дробное. Если целое, то просто возвращаю его, если дробное, то применяю метод to.Fixed(3), что в итоге решает проблему с 0.1 + 0.2 и решает мою дилемму с дробным). В итоге я имею число типа 10 000 000.111 и всё довольны. Спасибо. Но в будущем может надо будет применять Ваш вариант. Или делать регулярное, которое не будет трогать дробную часть.

рони 26.03.2016 23:22

orionpro,
http://javascript.ru/forum/showthrea...530#post260530

orionpro 27.03.2016 22:00

Цитата:

Сообщение от рони (Сообщение 412137)

Я ждал от Вас сообщение)). Спасибо. Как всегда в точку!:thanks: :thanks:

orionpro 27.03.2016 22:14

Цитата:

Сообщение от рони (Сообщение 412137)

Можно вопрос ? Насчёт аргументов в той функции, я так понимаю, что аргументом a там идёт то, чем будем заменять, а что идёт аргументом с ?


Часовой пояс GMT +3, время: 02:26.