2015-08-14 86 views
0

С входом вроде 123456789, как я могу преобразовать его в формат, такой как 123 456 789 с JavaScript?Javascript - Как добавить пробелы между цифрами?

split("").join(" "); возвращает 1 2 3 4 5 6 7 8 9

+0

не тестировался, но, как о '.split (/ (\ d {3}) /)'? –

+0

Вы должны начать с выяснения того, что такое правильный раскол: «12 34 56 78 9» так же справедливо, как «123 456 789» или «1234 5678 9». Слишком широкий. – duffymo

+0

Вы можете использовать substr 'num.substr (0,3) + '' + num.substr (3,3) + '' + num.substr (6,3)' – suvroc

ответ

3

Используйте substring метод:

var num = "123456789"; 
var result = ""; 
var gap_size = 3; //Desired distance between spaces 

while (num.length > 0) // Loop through string 
{ 
    result = result + " " + num.substring(0,gap_size); // Insert space character 
    num = num.substring(gap_size); // Trim String 
} 

alert(result) // "123 456 789" 

JSFiddle

0

Вы можете использовать регулярное выражение для этого

var a = "123456789" 
a.match(/\d{3}/g).join(" ") 
> "123 456 789" 

регулярного выражения соответствует группе 3 цифр несколько раз

1

Вы могли бы :

var formatted = str.replace(/(\d{3})/g, '$1 ').trim(); 
0

Используйте регулярное выражение с split() как

console.log('123456789'.split(/(\d{3})/).join(' ').trim());

+0

Добавить обрезку() в конце – crc442

+0

@ crc442, спасибо за предложение – AmmarCSE

2

Если вы хотите всегда пространство, чтобы быть, как далеко от права вы, использовать предпросмотр, который отсчитывает в тройках

'12345678'.replace(/(\d)(?=(\d{3})+$)/g, '$1 '); // "12 345 678" 

(?=pattern) является опережение, \d{3} составляет 3 цифры, а (pattern)+ означает повторение последнего шаблона один или несколько раз (жадно) до конца Строка$

Смежные вопросы