如何解决当值用引号括起来时,如何将 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 举报,一经查实,本站将立刻删除。