用逗号分隔数组,JavaScript

本文关键字:JavaScript 数组 分隔 | 更新日期: 2024-11-08 21:24:48

我有一个奇怪的场景。我有一个可以有多个选择的组合框。我的数据可能包含逗号。我正在使用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'

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

用逗号分隔数组,JavaScript

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

输出为:

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

阅读您的问题正是您想要的。

这个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);