繁体   English   中英

将“ ['a','b','c']”转换为['a','b','c']:Javascript

[英]Convert “['a','b','c']” to ['a','b','c'] : Javascript

哪种方法最适合做这些事情?

注意:我的数组包含复数值,表示用逗号分隔或对象值在边字符串数组中,并且数组字符串用引号引起来,而元素用引号引起来。

例如 str = "['sam', 'admin', '1062', 'Sam', 'True', '$$global_permissions#1062:manage_replenishment,purchase_order,reprint_invoice#1008', 'sameer@opnce.com', '9920580', 'en', '358', '{\\"Sales-tax-details\\":\\"brand,category,supplierNo\\",\\"invoice-logs\\":\\"invoiceNo,eventDateTime,event\\"}']"

在这里,我玩了JSON.parse

JSON.parse(str);
Uncaught SyntaxError: Unexpected token ' // this error i got on console

然后我尝试了

JSON.parse(str.replace(/'/g, '"'))
Uncaught SyntaxError: Unexpected token S  // this error i got on console

我想在这里探索的另一件事是,如果str包含以下元素,

str = "['sam', 'admin', '1062', 'Sam', 'True', '$$global_permissions#1062:manage_replenishment,purchase_order,reprint_invoice#1008', 'sameer@opnce.com', '9920580', 'en', '358', '{}']"

这个str我想,

JSON.parse(str.replace(/'/g, '"'))

在这里工作正常,

问候。

也许,

JSON.parse('["a", "b", "c"]');

编辑 :对于EX。 从问题中获取str ,以下方法应该起作用:

JSON.parse(str.replace(/'{/g, "{").replace(/}'/g, "}").replace(/'/g, "\"").replace(/\\\"/g, "'"))

这个怎么样:

JSON.parse('["a","b","c"]');

JSON.parse应该可以工作。 如果您不能使用JSON ,这也可以:

var str = '["a","b","c"]'
   ,str2arr = str.replace(/"|\[|\]/g,'').split(',');
//=> str2arr = ['a','b','c']

最正确的方法是:

try{
    var res = JSON.parse(your_string);
} catch(e){
    //console.log(e);
}

这样,如果字符串不正确,则不会产生错误,并且在catch块中,您可以针对这种情况做正确的事情

不用jQuery(不是问题)试试这个:

var string = '["a","b","c"]';
var myArray = [];
try {
    myArray = eval(string);
}
catch (r) {
}

console.log(myArray)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM