繁体   English   中英

从 object 属性中删除双引号,除非以数字开头

[英]Remove double quotes from object properties unless start with number

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

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

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

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

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

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

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

所需的正则表达式模式将匹配"label""text3""text2Button" ,这样我就可以将 object 转换为:

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

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

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

您可以使用以下模式:

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

演示

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

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

在此处输入图像描述

演示:这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM