【问题标题】:Javascript: Turn a String to an Array with a Regular ExpressionJavascript:使用正则表达式将字符串转换为数组
【发布时间】:2017-01-14 22:49:01
【问题描述】:

我有一些看起来像数组的字符串,我想将它们变成真正的数组

例如这个字符串...

"['str1', 'str2', 'str3', 'str4']"

...我想变成字符串数组:

['str1','str2','str3','str4']

我认为我需要做的是在字符串上运行正则表达式以去掉括号 ([])、单引号 (') 和空格,因此它只是一个字符串,例如:“str1,str2,str3 ,str4" 然后简单地运行 split(',') 方法,但我不确定如何制作这个 RegExp

【问题讨论】:

  • 如果您完全信任源可以使用eval(),它将返回数组。请注意 eval() 可能很危险。字符串的来源是什么,是否可以将其更改为使用双引号,这样您就可以使用 JSON.parse()?
  • 重申@charlietfl 所说的,使用eval() 可能是一场难以置信危险的赌博。您必须绝对 100%信任字符串的来源。

标签: javascript arrays string


【解决方案1】:

最简单的方法是使用JSON.parse。 JSON字符串中的字符串必须用双引号分隔,像这样。

result = JSON.parse('["str1", "str2", "str3", "str4"]'); 

此技术适用于null、任何 javascript 对象或任何有效的 JSON 对象。您可以在此处阅读有关 JSON 格式的信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON

不要重新发明轮子!不要使用自定义正则表达式来解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2021-09-16
    • 1970-01-01
    • 2012-01-28
    • 2022-11-18
    相关资源
    最近更新 更多