我有一个字符串abc/0/def/0
并希望将其更改为此格式的abc[0].def[0]
此外,它并不总是0可以是任何数字
我正在研究使用正则表达式进行替换
这实际上是希望将jsonPointer格式转换为jsonPath格式
发布于 2021-04-23 01:45:08
我不确定这是不是你想要的,因为我并没有真正和jsonPointer & jsonPath合作过,但是下面是:
let str = 'abc/0/def/0';
let sub = str.replace(/\/(\d)\//g, "[$1].");
sub = sub.replace(/\/(\d)/g, "[$1]");
console.log(sub); // abc[0].def[0]这可能不是最好的解决方案,因为我在这里使用了两个替代品。但它是有效的。解释:
第一个替换是匹配任何被斜杠包围的数字,就像你例子中的/0/。它将斜杠替换为[],并在第二个括号后添加点。这样,abc/0/就变成了abc[0].。
第二个替换匹配前面只有一个斜杠(后面没有斜杠)的任何数字。它只是删除了斜杠,并在数字周围添加了括号。这将用def[0]替换def/0。
当然,这个解决方案适用于任何数字,比如abc/3/def/6或abc/6/def/3。
https://stackoverflow.com/questions/67203870
复制相似问题