Javascript 如何将数组字符串解析为数组
我需要将字符串转换为数组。唯一需要注意的是,我的字符串中可以有特殊字符,如Javascript 如何将数组字符串解析为数组,javascript,Javascript,我需要将字符串转换为数组。唯一需要注意的是,我的字符串中可以有特殊字符,如#。这是一个输入示例“[1,2,3,#,5]”。我尝试使用了JSON.parse,如果没有特殊字符,它就可以工作,例如,“[1,2,3,4]”,但是对于像#这样的特殊字符,我希望保留数组中的字符。所以“[1,2,3,#,5]”应该被解析为[1,2,3,#,5],但会引发异常JSON.parse提供了一个用于特殊处理的REVERER回调函数,但似乎是一个过度的用途,我想这将有点复杂。非常感谢您的帮助 编辑:Reviver回调
#
。这是一个输入示例“[1,2,3,#,5]”
。我尝试使用了JSON.parse
,如果没有特殊字符,它就可以工作,例如,“[1,2,3,4]”
,但是对于像#
这样的特殊字符,我希望保留数组中的字符。所以“[1,2,3,#,5]”
应该被解析为[1,2,3,#,5]
,但会引发异常JSON.parse
提供了一个用于特殊处理的REVERER回调函数,但似乎是一个过度的用途,我想这将有点复杂。非常感谢您的帮助
编辑:Reviver回调不会有帮助,因为它用于转换解析的对象,而不是帮助解析对象。因此,这也被排除在可能的解决方案之外,您可以使用:
const str=“[1,2,3,#,5]”;
const arr=str.replace(/(^\[\]$)/g',)//删除[]括号
.split(“,”)//用逗号拆分
.map(x=>isNaN(x)?x:+x);//转换数字
console.log(arr);//[1,2,3,“#”,5]
这里它试图将其转换为数字数组,因此任何其他字符都会抛出一个错误,包括字母表和特殊字符
试着用这个代替-
var output=“[1,2,3,#,5]”。替换(/[\[\]']+/g')。拆分(“,”);
控制台日志(输出)//[“1”、“2”、“3”、“#”、“5”]