javascript - Javascript 正则表达式将括号 [] 表示法转换为点表示法
问题描述
我正在尝试将符号 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;
}
这使它无需在运行时评估代码即可获得变量值。不幸的是,如果变量以方括号表示法 [ ] 给出,这不起作用
解决方案
将其转换为点的基本正则表达式
var str = "variableName[field1][field2]"
console.log(str.replace(/\[([^\]]+)\]/g, '.$1'))
推荐阅读
- python-3.x - 如何在没有 Python 中使用的任何外部模块的情况下获取 BMP 图像的像素值
- javascript - 角 10 | 谷歌adwords转换代码在head | 如何从组件调用 gtag_report_conversion
- react-native - 类型错误:navigation.state.params。反应原生
- java - 如何在应用程序中禁用 Android 系统键盘
- flutter - Flutter 为每种按钮类型指定 Button Theme
- javascript - 如何从系统上传和覆盖animation.html文件并以HTML或ANGULAR覆盖视频
- vb.net - 组合框VB.Net的双向数据绑定
- java - 使用 Apache HTTP 客户端和 Spring REST 发送 HTTP PUT 请求时出现问题
- c# - Sytem.Net.Http.HttpClient 在 .net 核心和 .net 框架中的行为不同
- mongodb - MongoDB 上的“部分启用身份验证”是什么意思?