首页 > 解决方案 > Javascript用方括号替换字符串点表示法

问题描述

我试图弄清楚如何用方括号替换点符号中的字符串:

emergency.1.phone.2

应转换为:

emergency[1][phone][2]

我正在尝试使其动态化,因此无论有多少点,它都会转换字符串。

标签: javascriptjqueryarrays

解决方案


您可以通过使用.replace带有特殊替换功能的正则表达式的字符串方法来做到这一点。

正则表达式是/\.(.+?)(?=\.|$)/g,它查找:

  • 一个文字.,后跟
  • 任何事情,直到:
  • 另一个文字.或字符串的结尾

然后,您可以指定一个函数,该函数获取捕获的字符串并将其放在括号中,并将其用作替换器。

例子:

const dots = "emergency.1.phone.2"

// Should convert to:
// emergency[1][phone][2]

console.log(dots.replace(/\.(.+?)(?=\.|$)/g, (m, s) => `[${s}]`))


推荐阅读