我有一个字符串值,传递给我的javascript文件,如:
"["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]"
我想用每个逗号分隔GUID。
所以我做了这样的事情:
var string = "["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]";
var array = string.split(',');
当我索引数组时,我得到了结果:
array[0] = "["244aac9a-0833-40a2-b8e9-9bef89562b2e""
array[1] = ""a392913d-9a17-4c30-ba99-f9ad9745fa0a""
array[2] = ""f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]"
这与我的需求非常接近,但最好的方法是摆脱额外的""来自[
的{{1}}和array[0]
的{{1}}
答案 0 :(得分:6)
JSON怎么样?
JSON.parse('["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]')
答案 1 :(得分:0)
您可以在拆分前移除"
,[
和]
:
var array = str.replace(/["[\]]/g, "").split(",");
/["[\]]/g
是一个正则表达式,用于定义包含字符"
,[
和]
的字符类,这意味着“这里有任何这些字符”。它用空字符串替换任何匹配的东西。
示例:
var str = "[\"244aac9a-0833-40a2-b8e9-9bef89562b2e\",\"a392913d-9a17-4c30-ba99-f9ad9745fa0a\",\"f5eca9a9-c6ef-4abb-b54c-134271d69cd9\"]";
var array = str.replace(/["[\]]/g, "").split(",");
array.forEach(function(entry, index) {
snippet.log("array[" + index + "]: " + entry);
});
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
答案 2 :(得分:0)
略过[]
,删除逗号&amp;空间,分裂:
var string = "[\"A\", \"B\", \"C\"]";
var arr = string.substr(1, string.length - 2).replace(/[\"\s]/g, "").split(",");
alert(arr);
答案 3 :(得分:0)
虽然答案Splitting Array in javascript是正确的,但还需要更多解释。
给出字符串:
"["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]"
此字符串遵循常见的JSON数组格式http://www.w3.org/TR/json-ld/#dfn-array:
数组结构表示为零的方括号 或更多的价值观。值以逗号分隔。在JSON中,数组是 零序或多个值的有序序列。
在示例字符串中,每个对象实际上都是一个字符串,因为它被"
或'
标记包围。要将JSON字符串解析为对象,只需调用:
var jsonObject = JSON.parse(string);
这将导致字符串的对象数组。然后可以以常见的JavaScript Array
方式进行迭代或管理。
答案 4 :(得分:-1)
实现此目的的一种方法是通过eval()函数而不使用任何库。
var arr = '["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]';
var arrObj = eval(arr);
console.log(arrObj.length) //length is 3
还将字符串值包装在单引号(&#39;)中,而不是双引号(&#34;)。