javascript - Javascript用方括号替换字符串点表示法
问题描述
我试图弄清楚如何用方括号替换点符号中的字符串:
emergency.1.phone.2
应转换为:
emergency[1][phone][2]
我正在尝试使其动态化,因此无论有多少点,它都会转换字符串。
解决方案
您可以通过使用.replace
带有特殊替换功能的正则表达式的字符串方法来做到这一点。
正则表达式是/\.(.+?)(?=\.|$)/g
,它查找:
- 一个文字
.
,后跟 - 任何事情,直到:
- 另一个文字
.
或字符串的结尾
然后,您可以指定一个函数,该函数获取捕获的字符串并将其放在括号中,并将其用作替换器。
例子:
const dots = "emergency.1.phone.2"
// Should convert to:
// emergency[1][phone][2]
console.log(dots.replace(/\.(.+?)(?=\.|$)/g, (m, s) => `[${s}]`))
推荐阅读
- javascript - 这个特定的嵌套 for 循环如何在原生 JavaScript 中工作?
- python - 熊猫选择相应 nan 值的前一列值
- python - jinja2.exceptions.TemplateNotFound 错误的问题
- c++ - 编译器差异:在 const 成员函数中定义的可变 lambda 中捕获值时的“this”类型
- bash - 使用变量设置 Docker GitLab root 密码?
- java - equalsIgnoreCase 在自身上被调用。错误
- reactjs - Material-UI:`css` 功能已弃用。改用 `styleFunctionSx`
- python - 用于裁剪的 GUI 测量图片大小
- reactjs - “TypeError:graphql.isType 不是函数”
- reactjs - 收到来自 firebase 云消息传递的消息后调度操作