Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Разбиение числа по 3 символа (изящный способ) (https://javascript.ru/forum/jquery/38062-razbienie-chisla-po-3-simvola-izyashhnyjj-sposob.html)

Кирюха =) 17.05.2013 11:28

Разбиение числа по 3 символа (изящный способ)
 
Всем привет!!! Задался недавно проблемой есть допустим строка 50000, как при помощи js преобразовать ее в 50 000, наиболее изящным способом. Я уверен что есть такое решение.... О искусники помогите :help:

Hekumok 17.05.2013 11:47

function gap(n) {
  return n.replace(/\d{0,3}(?=(\d{3})+$)/g, "$& ") ;
}
alert([gap("50000"), gap("1234567890")]) ;

ksa 17.05.2013 11:48

Цитата:

Сообщение от Кирюха =)
О искусники помогите

Помощь стучится в двери - открой!

zebra 17.05.2013 11:49

В книге по регуляркам было
var str = '5000022222121';
var reg = /(\d)(?=(\d\d\d)+\b)/ig
alert(str.replace(reg, '$1 '))

Кирюха =) 18.05.2013 01:05

ksa, я не знал как задать поисковой запрос)))) вводил всякую чушь например разбиение числа..... и тп)))

Кирюха =) 18.05.2013 01:08

Цитата:

Сообщение от zebra (Сообщение 251042)
В книге по регуляркам было
var str = '5000022222121';
var reg = /(\d)(?=(\d\d\d)+\b)/ig
alert(str.replace(reg, '$1 '))

А что есть отдельная книга посвященная регулярным выражениям?????:blink: :blink: :blink:
Если да, то скажите автора и название, я ее буду страстно читать..... а то я пробовал с регулярными выражениями разобраться и все никак не получалось((((

Кирюха =) 18.05.2013 01:09

Hekumok,
Спасибо, это именно тот исскусный способ)))) + 1 в копилку

Aetae 18.05.2013 11:28

Вариант от 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")) ;

zebra 18.05.2013 12:32

Цитата:

Сообщение от Кирюха =)
А что есть отдельная книга посвященная регулярным выражениям?????

Да есть. Читаю как раз. Называется "регулярные выражения 3-е издание"

Кирюха =) 18.05.2013 19:56

Цитата:

Сообщение от Aetae (Сообщение 251269)
Вариант от 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")) ;

И правда няшней, возьму ваш))))


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