2010-06-21 5 views
1

Я хотел бы разрешить пользователю вводить список идентификаторов в текстовое поле и разрешать идентификаторы разделять пробелами, такими как новая строка, а также запятыми.Как получить int [] из строки целых чисел в javascript/jQuery?

Тогда я хотел бы преобразовать, что в межд [] или выдаст ошибку, если строка плохо: содержит буквы, десятичные и т.д.

Но у меня возникают проблемы при работе его.

Может ли кто-нибудь привести пример того, как это сделать?

Я бы оценил любую помощь.

+1

Буквально, как вы описали. Чтение значения textarea, разбиение на разделители, преобразование в int, ошибка throw, если строка «плохая». В какой части у вас были проблемы? –

ответ

5

Если вы используете split method, вы можете передать ему регулярное выражение для разделения. Например:

var myArray=myString.split(/[^\d]+/); 

Это вернет массив строк, каждый из которых содержит строковое представление целого числа. Кроме того, вы можете использовать parseInt function для разбора этих строк представления для целых чисел, например, так:

var myIntArray=[]; 
for(var i=0;i<myStringArray.length;i++) { 
    myIntArray.push(parseInt(myStringArray[i], 10)); 
} 

Вы можете увидеть полный пример с некоторыми помощниками JQuery (в частности, jQuery.map) here.

+0

Используйте '\ D' вместо' [^ \ d] '. – James

+0

Почему вы думаете, что \ D лучше, чем [^ \ d]? Похоже, это было бы так же ... – user169867

+0

Я не знал о '\ D', а' [^ \ d] 'работал отлично, поэтому я его и использовал. – icktoofay

1

Посмотрите на функцию split.

Что вам нужно сделать, это разделить текст в текстовом поле на основе вашего желаемого разделителя, а затем перебрать массив для преобразования в целые числа. Так как функция split принимает один разделитель, вам нужно немного нормализовать ввод, скажем, путем преобразования разрывов строк в пробелы.

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