用逗号分隔数组,javascript

时间:2015-03-09 19:19:42

标签: javascript c# arrays

我有一个奇怪的场景。我有一个可以有多个选择的组合框。我的数据可能包含逗号。我使用的是Infragistics控件,因此我无法控制分隔符。现在,我的组合框值为" A * A" " A%A"和" A,A"。如果用户选择所有3个值,结果如下所示:

    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'

array [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#中实现,请告诉我。感谢

2 个答案:

答案 0 :(得分:1)

查看troycomptonenterprises.com并执行combo.igCombo('values');会返回一个包含字符串中值(包括问题值)的数组。这里没有错。

输出是:

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

阅读你想要的问题。

答案 1 :(得分: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);