【发布时间】:2015-04-13 19:48:46
【问题描述】:
我想用它的位置替换数组中的每个项目。简单的例子:
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]
并尝试使用正则表达式
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
【问题讨论】:
-
你为什么使用正则表达式?为什么不只计算字符串的长度,然后创建对应的位置数呢?
-
我不明白你在做什么。这些位置只会增加所有内容的数字。
-
这两种情况下的问题是,每次循环时,您都会用一次替换的结果覆盖
items_positions。你没有组合所有的替代品。 -
好的thanx回复和其他downvote,whats workarround!
-
你为什么还要关心角色?如果您知道长度,只需从中生成您想要的结果。
标签: javascript arrays regex