【发布时间】:2020-03-12 00:18:03
【问题描述】:
给定一个像"['chad', 123, ['tankie'], '!!!']" 这样的字符串,我需要返回一个布尔值来说明这个字符串是否是一个有效的数组。
我对大多数解决方案持开放态度,包括正则表达式。
【问题讨论】:
-
我不寒而栗,但是
eval()呢? -
你给定的字符串实际上不是一个数组。这需要字符串
chad以单引号结尾。 -
字符串总是一个数组——一个字符数组。如果您的意思是内容可以是一个数组,例如 JSON 数组,那么您需要定义将字符串的内容变成可以解析为对象数组的规则。
-
如果您只接受有效的 JSON(双引号),使用
JSON.parse()会更容易。如果无效,它将引发错误,您可以捕获该错误以返回 false。如果您需要接受您提供的输入作为示例,eval()也很简单,但根据您的用例(例如"[alert('P0wned!')]")并不安全。是否所有项目都应该具有原始类型? -
如果它是有效的Javascript,你应该能够用双引号替换单引号,并解析为JSON等。
标签: javascript arrays regex string typescript