有没有一种方法可以将点表示法转换为括号表示法?

时间:2019-04-12 13:26:33

标签: javascript vue.js

我正在尝试转换字符串:

string.0.another.0.string

进入

string[0].another[0].string.

我尝试使用 RegEx split()进行循环,但是我没有成功。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

let a = 'string.0.another.0.string';

let res='';

a.split('.').forEach(val => {
 res += val === '0' ? '[0].' : val;
});

console.log(res);

或更简单的解决方案:

let a = 'string.0.another.0.string';
let res = a.replace(/.0/g, "[0]");
console.log(res);

答案 1 :(得分:0)

使用正则表达式匹配此模式“。(任意数字)”。然后用捕获的数字组替换,并用“。”括起来。

const regex = /\.([0-9])\./g;
const str = 'string.0.another.0.string';
const subst = '.[$1].';
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);

答案 2 :(得分:0)

假设您的字符串字面意思是“ string [0] .another [0] .string”,string.replace()就会退缩。

let str = "string.0.another.0.string";
console.log(str);
str = str.replace(/.0./g, "[0].");
console.log(str);