用逗号分隔数组,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# 中实现,请告诉我。谢谢
查看 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);