2014-01-16 4 views

ответ

3

Просто замените все (, ) и все пробельные символы с пустой строкой; разделить его с ,, а затем применить parseInt функции по всем элементам, чтобы преобразовать их в число, как этого

var data = "(1,4,76,465,567,583,590)"; 
console.log(data.replace(/[\s()]/g, "").split(",").map(function(currentItem) { 
    return parseInt(currentItem); 
})); 

Выход

[ 1, 4, 76, 465, 567, 583, 590 ] 

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

data.replace(/[\s()]/g, "").split(","); 

Если ваша среда не поддерживает Array.prototype.map функции, то вы можете использовать следующие

var splittedNumbers = data.replace(/[\s()]/g, "").split(","); 
for (var i = 0; i < splittedNumbers.length; i += 1) { 
    splittedNumbers[i] = parseInt(splittedNumbers[i]); 
} 
console.log(splittedNumbers); 
0

Ну сначала вам нужно будет избавиться от скобок.

var string = "(1,4,76,465,567,583,590)"; 
string = string.replace(/[()]/g,''); 

Это вернет

"1,4,76,465,567,583,590" 

Так все, что вам нужно сделать сейчас, это использовать метод

var array = string.split(','); 

раскол(), который будет возвращать строковые значения, так что вам нужно будет также проходить их через метод parseInt().

0

Добавить новый метод прототипа Струнный который удаляет ( и ) и затем Сплите запятой

String.prototype.splitString = function() { 
    return this.replace('(', '').replace(')', '').split(',').map(function (current) { return parseInt(current) }); 
}; 

var string = "(1,2,3,456,567,543,232)"; 

var array = string.splitString(); 

Выход

[1, 2, 3, 456, 567, 543, 232] 
+0

OP хочет массив целых чисел не строк. – Andy

+0

Отмечено. Обновлен ответ – Tom

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