“需要在5个逗号分隔值后分成多个数组”
您似乎在说结果应该是一个包含五个值的数组,然后是一个包含下五个值的第二个数组,等等。如果是这样,您可以执行以下操作:
var list = "<%=ab%>";
list = list.slice(1,-1); // remove the enclosing []
var allValues = list.split(/\s*,\s*/); // split on comma with optional whitespace
var a = [];
for (var i = 0; i < allValues.length; i+=5) {
a.push( allValues.slice(i, i+5<=allValues.length ? i+5 : allValues.length) );
}
运行上述后,a
将是包含其他数组的数组。a[0]
是前五个项目的数组,因此,例如,a[0][2]
是第三个项目。a[1]
是接下来五个项目的数组。如果原始列表中有十个以上的项目,那么a[2]
将是接下来五个的数组,依此类推。如果项目的总数不能被 5 整除,那么最后一个数组将包含余数。
演示:http: //jsfiddle.net/9xAxz/
“然后我需要将每个数组值放入文本框值”
嗯...这是否意味着每个文本框一个项目?如果是这样,为什么要在五个值之后进行划分?你的意思是每个文本框五个项目?无论哪种方式,您都在谈论动态创建文本框吗?如果是这样,您可以按照上面的代码执行以下操作:
var tb;
for (i = 0; i < a.length; i++) {
tb = document.createElement('input');
tb.value = a[i].join(", ");
document.body.appendChild(tb);
}
演示:http: //jsfiddle.net/9xAxz/1/
如果我完全不符合上述任何一项,那么...考虑编辑您的问题以使其更清楚。我想我应该在回答之前先澄清一下,但请更新问题以显示该输入所需的输出。