【问题标题】:Javascript regex convert bracket [ ] notation to dot notation [duplicate]Javascript正则表达式将括号[]表示法转换为点表示法[重复]
【发布时间】:2020-06-15 03:03:29
【问题描述】:

我正在尝试将符号 variableName[field1][field2] 中的一些变量转换为符号 variableName.field1.field2

我这样做的原因是因为用户可以在 UI 中输入变量名,我不想直接 eval() 它们,所以我通过这个函数运行它们:

function getDescendantProp(obj, desc) {
   var arr = desc.split(".");

   while (arr.length) {
       obj = obj[arr.shift()];
   }
   return obj;
}

这使它无需在运行时评估代码即可获取变量值。不幸的是,如果变量以方括号表示法 [ ]

给出,这不起作用

【问题讨论】:

  • 括号符号是否包含引号?是[field1] 还是['field1']?还是两者兼而有之?

标签: javascript arrays regex


【解决方案1】:

将其转换为点的基本正则表达式

var str = "variableName[field1][field2]"
console.log(str.replace(/\[([^\]]+)\]/g, '.$1'))

【讨论】:

  • 谢谢,这正是我找不到的
猜你喜欢
  • 2020-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 2019-12-24
相关资源
最近更新 更多