2010-03-15 5 views
1

У меня есть текстовое поле, в котором пользователь вводит следующие данные:Как читать текстовое поле с определенным условием

  1. Пол: Nine, Рим
  2. Дженни: Пять, Индия
  3. Боб

Я хочу прочитать данные и сохранить значения перед двоеточием в массиве и значения после двоеточия в другом массиве. Обратите внимание, что пользователь не может вводить значения после двоеточия, как в случае 3 выше. В таком случае значение должно быть сохранено в первом массиве, как если бы оно было до двоеточия.

Как это сделать с помощью jquery?

+1

Это немного в стороне, но, безусловно, как пользовательский интерфейс, вы можете сделать это более простым способом ... – Paddy

+0

Что происходит, когда пользователь вводит все три строки без вставки новой строки? – rahul

ответ

0

Что-то вроде этого:

var txt = $('#your_array').text(); 
var lines = txt.split('\n'); 
var data = new Array(); 
for(var i=0;i<lines.length;i++){ 
    var o = {}; 
    var array1 = txt.split(':'); 
    o.name = array1[0]; 
    if(array1.length > 1){ 
     var array2 = array1[1].split(','); 
     o.number = array2[0]; 
     if(array2.length > 1){ 
      o.location = array2[1]; 
     } 
    } 
    data.push(o); 
} 

/* 
    data = [ 
     { name: "Paul", number: "Nine", location: "Rome" }, 
     { name: "Jenny", number: "Five", location: "India" }, 
     { name: "Bob" } 
    ]; 
*/ 
  • Процессов каждой строки отдельно ,
  • Ручки отсутствуют данные в любом поле.
+0

Действительно полезно, но var txt = $ ('# your_array'). Text(); должен был быть заменен на var txt = $ ('# your_array'). val(); – learning

1

Вы можете использовать текст() и разделить

var arrDetails = $("#txtareaid").text().split(':'); 

//arrDetails[0] will get the string before colon 
//arrDetails[1] will get the string after colon 

Если нет двоеточия, то arrDetails[1] будет неопределенного