17.05.2013, 11:28
|
|
Профессор
|
|
Регистрация: 27.07.2011
Сообщений: 207
|
|
Разбиение числа по 3 символа (изящный способ)
Всем привет!!! Задался недавно проблемой есть допустим строка 50000, как при помощи js преобразовать ее в 50 000, наиболее изящным способом. Я уверен что есть такое решение.... О искусники помогите
|
|
17.05.2013, 11:47
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
function gap(n) {
return n.replace(/\d{0,3}(?=(\d{3})+$)/g, "$& ") ;
}
alert([gap("50000"), gap("1234567890")]) ;
__________________
★ ²º¹³ ☆
|
|
17.05.2013, 11:49
|
Профессор
|
|
Регистрация: 14.09.2011
Сообщений: 523
|
|
В книге по регуляркам было
var str = '5000022222121';
var reg = /(\d)(?=(\d\d\d)+\b)/ig
alert(str.replace(reg, '$1 '))
|
|
18.05.2013, 01:05
|
|
Профессор
|
|
Регистрация: 27.07.2011
Сообщений: 207
|
|
ksa, я не знал как задать поисковой запрос)))) вводил всякую чушь например разбиение числа..... и тп)))
|
|
18.05.2013, 01:08
|
|
Профессор
|
|
Регистрация: 27.07.2011
Сообщений: 207
|
|
|
|
18.05.2013, 01:09
|
|
Профессор
|
|
Регистрация: 27.07.2011
Сообщений: 207
|
|
Hekumok,
Спасибо, это именно тот исскусный способ)))) + 1 в копилку
|
|
18.05.2013, 11:28
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Вариант от zebra лучше, но так няшнее:
function gap(str, separator) {
return str.replace(/\d(?=(?:\d{3})+\b)/g, "$&" + (separator||' ')) ;
}
alert([gap("прапрапр 50000 рпвр 5999 вопр", ','), gap("1234567890"), gap("123456789", '-')]) ;
Вариант от Hekumok ошибочен в {0,3}, ибо:
function gap(n) {
return n.replace(/\d{0,3}(?=(\d{3})+$)/g, "$&-") ;
}
alert(gap("123456789")) ;
__________________
29375, 35
|
|
18.05.2013, 12:32
|
Профессор
|
|
Регистрация: 14.09.2011
Сообщений: 523
|
|
Сообщение от Кирюха =)
|
А что есть отдельная книга посвященная регулярным выражениям?????
|
Да есть. Читаю как раз. Называется "регулярные выражения 3-е издание"
|
|
18.05.2013, 19:56
|
|
Профессор
|
|
Регистрация: 27.07.2011
Сообщений: 207
|
|
Сообщение от Aetae
|
Вариант от zebra лучше, но так няшнее:
function gap(str, separator) {
return str.replace(/\d(?=(?:\d{3})+\b)/g, "$&" + (separator||' ')) ;
}
alert([gap("прапрапр 50000 рпвр 5999 вопр", ','), gap("1234567890"), gap("123456789", '-')]) ;
Вариант от Hekumok ошибочен в {0,3}, ибо:
function gap(n) {
return n.replace(/\d{0,3}(?=(\d{3})+$)/g, "$&-") ;
}
alert(gap("123456789")) ;
|
И правда няшней, возьму ваш))))
|
|
|
|