微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当值用引号括起来时,如何将 Javascript 对象值转换为数组?

如何解决当值用引号括起来时,如何将 Javascript 对象值转换为数组?

如何将这个字符串的javascript对象值转换为数组,去掉外面的引号,只留下括号?尝试使用 obj["text-font"] = obj["text-font"].split('"').join(""); 未成功。

当前

text-font: "['Open Sans Regular','Arial Unicode MS Regular']"

预期

text-font: ['Open Sans Regular','Arial Unicode MS Regular']

解决方法

如果您知道字符串中除了定义字体名称的引号之外没有其他引号,您可以将它们转换为双引号,然后使用 JSON.parse() 将其转换为数组。

obj['text-font'] = JSON.parse(obj['text-font'].replace(/'/g,'"'));
,

您可以将单引号替换为双引号,然后使用 JSON.parse() 将其转换为实际的字符串数组。

obj["text-font"] = JSON.parse(obj["text-font"].replaceAll("'",'"'))

查看此处了解更多信息: MDN Web Docs: JSON.parse()

,

也许使用 eval() ** 但要注意安全问题,见下文

let obj = {
  "text-font": "['Open Sans Regular','Arial Unicode MS Regular']"
}

console.log(eval(obj['text-font']))

// to fix the object

obj['text-font'] = eval(obj['text-font']);
console.log(obj)

eval() has security risks 和恶意用户可以使用浏览器内调试器通过 XSS attacks 执行他们自己的 javascript - 一般建议是不要鲁莽地使用它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。