2015-03-09 3 views
0

У меня странный сценарий. У меня есть поле со списком, которое может иметь несколько вариантов. Мои данные могут содержать запятые. Я использую элементы управления Infragistics, поэтому я не контролирую разделитель. Теперь мои значения полей со списком «A * A» «A% A» и «A, A». Если пользователь выбирает все 3 значения, результат выглядит следующим образом:разделение массива запятыми, javascript

var arrValues = combo.igCombo('values'); //this retrieves the values    
    //arrValues contains this now: [A*A,A&A,A,A] 

Я разбор значения запятой и как вы уже догадались, у меня есть массив 4:

  array[0] = 'A*A' 
      array[1] = 'A&A' 
      array[2] = 'A' //the parse split "A,A" into 2 values 
      array[3] = 'A' 

массива [2] должно быть

  array[2] = 'A,A' 

и массив [3] не должно существовать. У меня есть функция, которую я думал бы работать, но это не так.

 function getComboBoxValues(combo, delim, index) { 
      var arrValues = combo.igCombo('values'); 
      var values = ""; 
      $.each(arrValues, function (i, o) { 
       values += ((delim) ? o.split(delim)[index || 0] : o) + ','; 
      } 
      ); 
     return values; 
    } 

Я называю это так:

var array = getComboBoxValues($('#mycombobox'), ',', 0); 

Как я могу разобрать мою строку:

[A * A, A & A, A, A]

в массив, поэтому он будет иметь только 3 значения

  array[0] = 'A*A' 
      array[1] = 'A&A' 
      array[2] = 'A,A' 

Имейте в виду, что это может быть не порядок, в котором будет строка, поэтому подсчет запятых не будет работать.

Код моей серверной части - C#, поэтому, если этого можно достичь на C#, сообщите мне. Спасибо

+0

ли контроль не даст вам возможность получить в отдельных элементов в поле со списком? – juharr

+0

не имеет Java метод string.Split(), аналогичный методу C# .NET, это звучит так выполнимо для меня - http://www.tutorialspoint.com/java/java_string_split.htm – MethodMan

+0

Я не уверен. Я думал об этом, после работы с элементами управления infragistics за последние 7 месяцев, я ничего не помню – BoundForGlory

ответ

1

Глядя на troycomptonenterprises.com и выполнив combo.igCombo('values');, вы возвращаете массив, содержащий значения (включая значение проблемы) в строке. Здесь ничего плохого.

Выход:

array[0] = "A*A" 
array[1] = "A&A" 
array[2] = "A,A" 

Чтение ваш вопрос, что это именно то, что вы хотите.

+0

Позвольте мне реализовать ваше решение ... дайте мне мгновение – BoundForGlory

+0

@BoundForGlory Если вам нужна помощь, дайте мне комментарий. – Mouser

+0

перейдите по адресу http://troycomptonenterprises.com, вы точно увидите, что я имею в виду. – BoundForGlory

1

Это Javascript работает:

var string = 'A*A,A&A,A,A'; 
var re = /([A-Z][\*&,][A-Z]),?/g; 
var m; 

do { 
    m = re.exec(string); 
    if (m) { 
     console.log(m[1]); 

     /* 
     Outputs: 
      A*A 
      A&A 
      A,A 
     */ 

    } 
} while (m); 
+0

это работает. Я думал о регулярном выражении, но я не являюсь гуру регулярных выражений. – BoundForGlory

+0

@Mouser - что вы сделали? – BoundForGlory

+0

@BoundForGlory Ничего в коде, просто отформатированный код в блок кода. – Mouser

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