0

我用谷歌搜索并完成了堆栈溢出问答,但没有找到这个确切的场景。我有一个像这样的对象:

props: {
  "label": "1rem",
  "text3": "1rem",
  "text2Button": "1rem",
  "1": "1rem",
  "5spacing": 2
}

我正在使用此正则表达式模式来捕获对象属性名称并根据另一个答案的简化版本删除双引号:

/"([^"]+)":/g

这很好用,但我希望数字保留双引号,所以我将其更改为:

/"([^"0-9]+)":/g

但是,这仅匹配"label",并且任何带有数字的属性都被排除在外。我理解为什么会发生这种情况,但我不知道如何匹配其中包含数字但排除以数字开头的属性。

所需的正则表达式模式将匹配"label", "text3", 并且"text2Button"只有这样我才能将对象转换为:

props: {
  label: "1rem",
  text3: "1rem",
  text2Button: "1rem",
  "1": "1rem",
  "5spacing": 2
}

(我不知道如何将 exclude^与 string 的开头结合起来^。我也不知道添加|运算符的正确位置,或者这是否是正确的方法。)

4

2 回答 2

2

您的模式不起作用,因为[^"0-9]+要求所有字符既不"是数字也不是数字,而您只想确保第一个字符不是数字。

您可以使用以下模式:

/"([^0-9][^"]*)":/g

演示

于 2019-10-14T16:03:47.683 回答
1

使用这个正则 表达式: 正则表达式:

\"([a-zA-Z]\w*)\"(?=:)

在此处输入图像描述

演示: 这里

于 2019-10-14T16:01:58.107 回答