JavaScript:如何提取字符串中的复杂内容
JavaScript : How to extract complex content in a string
我有一个字符串
var chartDataArrayString = '[0.00,0.00],[0.00,0.00],[0.00,0.00],[0.00,0.00],[0.00,0.00],[0.00,0.00],[0.00,0.00],[0.00,0.00],[0.00,0.00],[0.00,0.00],[8.44,10.55],[51.79,64.74]';
现在,我想从这个字符串中提取每个单元,并将其放入一个二维数组中。因此,在2D阵列中将有12个元素,并且每个元素具有2个值。所以它应该看起来像这个
var 2dArray = [[470, 870.45], [560, 920.49], [350, 540.12], [600, 901.59], [500, 750.4], [620, 401], [480, 724.4], [530, 598.98], [630, 630], [400, 876.69], [220, 1100.2], [500, 1021.9]];
我试着用","来分割它,但我发现每个小单元里都有一个","。
提前谢谢。
只需使用JSON.parse
,并在外部数组中连接。。。
var data = JSON.parse("[" + chartDataArrayString + "]");
您也可以使用.eval()
,但只要数据符合要求,JSON.parse
会更好/更安全。
您可以使用JSON.parse()
在一行中完成,如am not i am的答案所示。
但既然你在谈论使用.split()
,这里有一种方法可以让它发挥作用:
var dataArray = chartDataArrayString.slice(1,-1).split("],[");
for (var i=0; i < dataArray.length; i++)
dataArray[i] = dataArray[i].split(",");
也就是说,使用.slice()
来移除初始[
和尾部]
,然后在"],["
上进行拆分,从而创建形式为"0.00,0.00"
的字符串数组。然后遍历数组中的每个项,以创建具有另一个拆分的嵌套数组。
EDIT:如果内部元素是数字而不是字符串,您可以执行以下操作(这使得JSON.parse()是"正确"的解决方案变得更加明显):
for (var i=0; i < dataArray.length; i++){
dataArray[i] = dataArray[i].split(",").map(Number);
}
您可以使用eval
:
var arr = eval('[' + data + ']');
或者你可以玩字符串:
var arr = [];
var bits = data.replace(/(^'[)|(']$)/g,'').split('],[');
for (var i=0, iLen=bits.length; i<iLen; i++) {
arr[i] = bits[i].split(',');
}
任何合适的。哦,请注意,这些值将是字符串,而不是数字。
相关文章:
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- JavaScript中的复杂字符串匹配
- Ajax对复杂字符串进行故障切换
- JavaScript:如何提取字符串中的复杂内容
- 如何将复杂的字符串拆分为多个部分
- 字符串中复杂的多次替换
- 将字符串列表包装在复杂的 HTML 标记中
- 在数组中使用注释字符构建复杂字符串
- Jquery attr src 从 src 中删除了一个字符串,但没有删除更复杂的字符串,为什么
- 匹配字符串中的复杂 URL 以进行替换
- 从 Javascript 中的复杂嵌套对象值构建字符串
- 用于拆分字符串的复杂正则表达式 - 第 2 部分
- 如何将复杂的 JavaScript 对象转换为字符串并返回
- 我应该如何在javascript中将复杂对象作为字符串保存
- 替换 js 中复杂字符串中的单词
- 复杂的 JavaScript 字符串修改
- 使用一个正则表达式分析复杂字符串
- 对复杂字符串进行url解码;URI格式错误”;错误
- JavaScript-从复杂字符串中获取子字符串(名称和单位来自“somemetric[someunit]”)
- 复杂的字符串操作