Javascript:时间和信息分割
我从服务器上获得如下数据:Javascript:时间和信息分割,javascript,jquery,string,Javascript,Jquery,String,我从服务器上获得如下数据: "07.00 PROGRAM DESCRIPTION" "07.20 PROGRAM DESCRIPTION 2" 我想将它们拆分为一个2索引数组,例如:[“07.00”,“程序描述2”]。常规拆分(“”)不适用于我,因为描述部分包含多个“”空格 如有任何建议,我将不胜感激 关于子字符串方法: var time = row.substring(0,4); var description = row.substring(5); 或者,使用拆分方法: row = ro
"07.00 PROGRAM DESCRIPTION"
"07.20 PROGRAM DESCRIPTION 2"
我想将它们拆分为一个2索引数组,例如:[“07.00”,“程序描述2”]
。常规拆分(“”)不适用于我,因为描述部分包含多个“”空格
如有任何建议,我将不胜感激
关于子字符串方法:
var time = row.substring(0,4);
var description = row.substring(5);
或者,使用拆分方法:
row = row.split(" ",1);
第二个参数是最大拆分数。。。所以它只会在第一个空间分裂编辑:这不起作用。请改用第一种方法。您可以使用:
var parts = str.split(' '),
time = parts.shift(),
description = parts.join(' ');
或者,要获取阵列,请执行以下操作:
var parts = str.split(' ');
parts[1] = parts.slice(1).join(' ');
)() 您需要某种可靠的模式。如果总是需要在第一个空格字符之间进行拆分,则可以执行以下操作:
var blub = "07.00 PROGRAM DESCRIPTION",
pos = blub.indexOf(" "),
arr = [];
arr[0] = blub.slice(0, pos);
arr[1] = blub.slice(pos + 1);
或者您可能只想使用正则表达式。因为我不想假装是这一领域的天才,所以我有一个小小的建议:
var blub = "07.00 PROGRAM DESCRIPTION",
arr = /(\d+\.\d+)\s(.*)/.exec(blub);
这是灵活的,更容易适应格式变化的情况(只需更改模式并在代码中的任何其他地方使用该变量)Ah,我本来打算+1您的拆分(“,1”),但显然这只是丢弃其余拆分::(进一步的注释:例如,如果时间长度发生变化并变为变量的话(即07.00变为7:00,但也可能是19:00)您可以制作模式/([0-9]{1,2}(\.\124;:)[0-9]{2})\s(+)/
var pattern = /([0-9]{2}\.[0-9]{2})\s(.+)/;
var data = "07.00 PROGRAM DESCRIPTION";
var parsed = pattern.exec(data);
console.log(parsed); // (Array) ["07.00 PROGRAM DESCRIPTION", "07.00", "PROGRAM DESCRIPTION"]