我想用它的位置替换数组中的每个项目。简单的例子:
var items = 'ABCDefgh';
//how to replace items with its position to be
[0][1][2][3][4][5][6][7]
我使用它但它只替换最后一项。
for(var i=0;i<items.length;i++){
var items_positions = items.replace(items[i],'['+items.indexOf(items[i])+']');
alert(items_positions);
}
// it returns ABCDefg[7]
并尝试使用RegExp
for(var i=0;i<items.length;i++){
var items_positions = items.replace(new RegExp(items[i],"g"),'['+items.indexOf(items[i])+']');
alert(items_positions);
}
// it returns no thing
答案 0 :(得分:1)
这实际上不需要正则表达式。
var items = 'ABCDefgh';
var items_positions = "";
for (var i = 0; i < items.length; i++) {
items_positions += '[' + i + ']';
}
alert(items_positions)
答案 1 :(得分:0)
您需要先复制items
,然后每次循环更新。没有必要使用indexOf()
来查找元素的位置,因为它始终与i
相同。
var items = 'ABCDefghAfi';
var items_positions = items;
for (var i = 0; i < items.length; i++) {
items_positions = items_positions.replace(new RegExp(items[i], 'g'), '[' + i + ']');
}
alert(items_positions);