Учтите это:
function group1k(s) {
return (""+s)
.replace(/(\d+)(\d{3})(\d{3})$/ ,"$1 $2 $3" )
.replace(/(\d+)(\d{3})$/ ,"$1 $2" )
.replace(/(\d+)(\d{3})(\d{3})\./ ,"$1 $2 $3.")
.replace(/(\d+)(\d{3})\./ ,"$1 $2." )
;
}
Это быстрое решение для всего, что меньше 999,999,99, что обычно достаточно. Я знаю недостатки, и я не говорю, что это лучшее оружие - но оно так же быстро, как другие выше, и я нахожу это более читабельным. Если вам не нужны десятичные дроби, вы можете упростить их еще больше:
function group1k(s) {
return (""+s)
.replace(/(\d+)(\d{3})(\d{3})$/ ,"$1 $2 $3")
.replace(/(\d+)(\d{3})$/ ,"$1 $2" )
;
}
Разве это не удобно?