25.03.2016, 19:48
|
Аспирант
|
|
Регистрация: 23.12.2015
Сообщений: 39
|
|
Разделение цифр пробелом в строке
Есть результат в инпуте.
calculator.answer.value = calculator.answer.value.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
Мне нужно разделит пробелом, только целое число до дробной части. Т.е. целое число, а после дроби чтобы они оставались не разделёнными. С этим регулярным выражением, что я применяю выше, пробел ставится и в дробной части. Что-то я не могу разобраться, чтобы в этом регулярном выражении поменять, чтобы было так, как мне надо. И если можно объяснить. (хотя может и так будет понятно в самом регулярном)
Спасибо большое за ранее.
|
|
25.03.2016, 22:01
|
Профессор
|
|
Регистрация: 31.01.2015
Сообщений: 576
|
|
var str = '123.456'.replace(/(\d+)(?=\.\d+)/, function(a, b) {
return a.split('').join(' ');
});
alert(str);
|
|
25.03.2016, 22:13
|
Аспирант
|
|
Регистрация: 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.
|
|
25.03.2016, 22:18
|
Профессор
|
|
Регистрация: 31.01.2015
Сообщений: 576
|
|
|
|
25.03.2016, 22:44
|
Аспирант
|
|
Регистрация: 23.12.2015
Сообщений: 39
|
|
Сообщение от Decode
|
А это тебе не подойдет?
|
Оно то вроде как подходит, вот только многими браузерами не поддерживается, по-этому хотелось бы регулярным выражением вычленить цифры. Но у меня пока не получилось.
В общем то большое спасибо за вариант, я над ним тоже поработаю, но может быть кто-то подскажет, как с помощью регулярного выражения так сделать...
|
|
26.03.2016, 03:51
|
Профессор
|
|
Регистрация: 31.01.2015
Сообщений: 576
|
|
Сообщение от orionpro
|
Оно то вроде как подходит, вот только многими браузерами не поддерживается
|
Полифилл есть.
Сообщение от orionpro
|
по-этому хотелось бы регулярным выражением вычленить цифры. Но у меня пока не получилось.
|
Считать цифры в целой части (десятки, сотни, тысячи и т.д.), затем уже расставлять пробелы.
|
|
26.03.2016, 22:09
|
Аспирант
|
|
Регистрация: 23.12.2015
Сообщений: 39
|
|
Сообщение от Decode
|
Считать цифры в целой части (десятки, сотни, тысячи и т.д.), затем уже расставлять пробелы.
|
Да, про полифилл почитал. Всё же я применил верхнее регулярное выражение и определил функцию, которая вычисляет целое число или есть дробное. Если целое, то просто возвращаю его, если дробное, то применяю метод to.Fixed(3), что в итоге решает проблему с 0.1 + 0.2 и решает мою дилемму с дробным). В итоге я имею число типа 10 000 000.111 и всё довольны. Спасибо. Но в будущем может надо будет применять Ваш вариант. Или делать регулярное, которое не будет трогать дробную часть.
|
|
26.03.2016, 23:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
|
|
27.03.2016, 22:00
|
Аспирант
|
|
Регистрация: 23.12.2015
Сообщений: 39
|
|
Я ждал от Вас сообщение)). Спасибо. Как всегда в точку!
|
|
27.03.2016, 22:14
|
Аспирант
|
|
Регистрация: 23.12.2015
Сообщений: 39
|
|
Можно вопрос ? Насчёт аргументов в той функции, я так понимаю, что аргументом a там идёт то, чем будем заменять, а что идёт аргументом с ?
|
|
|
|