我有一个代码:
var locals = ["PontoRoteiro[0].LocalRoteiro[1]","PontoRoteiro[0].LocalRoteiro[3]","PontoRoteiro[0].LocalRoteiro[4]","PontoRoteiro[0].LocalRoteiro[5]"];
var result = [];
for(var i = 0; i < locals.length; i++)
{
var l = locals[i];
l = l.replace("^PontoRoteiro[0].LocalRoteiro[[0-9]*$]","PontoRoteiro[0].LocalRoteiro[" + i + "]" )
result.push(l);
}
console.log(result);
我需要对项目进行排序,保持升序而不跳过索引,如何替换不尊重索引的数字?
答案 0 :(得分:0)
[
和.
是特殊字符,您必须逃避它们:
l = l.replace(/^PontoRoteiro\[0\]\.LocalRoteiro\[\d+\]/,"PontoRoteiro[0].LocalRoteiro["+i+"]")
您可以简化:
l = l.replace(/LocalRoteiro\[\d+\]/,"LocalRoteiro["+i+"]")
答案 1 :(得分:0)
你错过了逃脱。 []字符:
var locals = ["PontoRoteiro[0].LocalRoteiro[1]","PontoRoteiro[0].LocalRoteiro[3]","PontoRoteiro[0].LocalRoteiro[4]","PontoRoteiro[0].LocalRoteiro[5]"];
var result = [];
var regex, i, l;
for(i = 0; i < locals.length; i++)
{
l = locals[i];
regex = /^PontoRoteiro\[0\]\.LocalRoteiro\[[0-9]+\]/;
l = l.replace(regex,"PontoRoteiro[0].LocalRoteiro[" + i + "]");
result.push(l);
}
console.log(result);