我有一个奇怪的场景。我有一个可以有多个选择的组合框。我的数据可能包含逗号。我使用的是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#中实现,请告诉我。感谢
答案 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);