【问题标题】:Convert a string containing a python list to a javasctipt array将包含 python 列表的字符串转换为 javascript 数组
【发布时间】:2021-07-23 00:03:06
【问题描述】:

我有这个字符串:

items = "['item1', 'item2']"

我需要它是一个像这样的 javascript 数组:

items = ['item1', 'item2']

我试试这个,它有效:

items.replace("]","").replace("[","").replaceAll("'","").split(",");

我得到的结果和预期的一样:

['item1', 'item2']

问题是:同样可以用更简单的方式完成吗?

【问题讨论】:

  • 最简单的方法:eval(items)JSON.parse(items.replace(/'/g, '"'))
  • 是的,不要使用eval,但JSON.parse 是这样的方式。
  • @MartinV 请有机会查看我的解决方案。它使用正则表达式使替换更简单,然后JSON.parse() 将最终结果解释为 JSON 数据。
  • @ChrisG eval(items) 是解决方案!谢谢!

标签: javascript python arrays string


【解决方案1】:

您可以非常简单地使用正则表达式文本替换和JSON.parse()

const items = "['item1', 'item2']";

const array = JSON.parse(items.replace(/'/g, '\"'));

console.log(array);

如果您想完全避免JSON.parse(),我们可以微调文本替换并使用.split() 方法,如下所示:

const items = "['item1', 'item2']";

const array = items.replace(/\[|\]|\s|'/g,'').split(',');

console.log(array);

【讨论】:

  • 感谢@Brandon McConnell!为您解答。抱歉,“items =”是变量赋值,我没有指定。
  • 三个例子,没有一个符合OP的实际输入数据...! :D
  • @MartinV 不用担心!这使得这更加简单。我会做出这个改变并很快更新我的答案。
  • @MartinV 根据您的说明,我更正了我的解决方案。有机会请查看。
猜你喜欢
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2022-12-11
  • 2018-12-30
  • 1970-01-01
  • 2022-10-23
相关资源
最近更新 更多