【问题标题】:separating an array with commas, javascript用逗号分隔数组,javascript
【发布时间】:2015-03-09 19:19:42
【问题描述】:

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

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

【问题讨论】:

  • 控件是否无法让您访问组合框中的各个项目?
  • Java 没有类似于 C#.NET 中的 string.Split() 方法,这对我来说听起来很可行 - tutorialspoint.com/java/java_string_split.htm
  • 我不确定。我想了想,在过去 7 个月使用基础设施控制之后,我什么都不记得了
  • @MethodMan,我没有使用 java
  • 在组合框中使用编码值"A%2CA",拆分后解码。

标签: javascript c# arrays


【解决方案1】:

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

输出是:

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

阅读您想要的问题。

【讨论】:

  • 让我实施您的解决方案...给我一点时间
  • @BoundForGlory 如果需要帮助,请给我评论。
  • 转到troycomptonenterprises.com 你会看到我在处理什么。
  • @BoundForGlory,看看你的网站,它只是给了我一个包含值的数组。没有错。
  • 该示例使用的是最新的基础架构代码。我正在运行一个超过 18 个月大的版本。我们将在今年晚些时候进行升级。我讨厌第 3 方 ui 控件。
【解决方案2】:

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

【讨论】:

  • 这行得通。我在想正则表达式,但我不是正则表达式大师。
  • @BoundForGlory 代码上什么都没有,只是将代码格式化成代码块。
  • @BoundForGlory 这个解决方案解决的是症状而不是问题。
猜你喜欢
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多