從服務器我得到的數據是這樣的:的Javascript:時間和信息分割
"07.00 PROGRAM DESCRIPTION"
"07.20 PROGRAM DESCRIPTION 2"
我想將它們分成2索引數組,如:["07.00", "PROGRAM DESCRIPTION 2"]
。定期拆分(「」)不適用於我,因爲說明部分包含一些「空格」。
我將不勝感激任何建議。
問候
從服務器我得到的數據是這樣的:的Javascript:時間和信息分割
"07.00 PROGRAM DESCRIPTION"
"07.20 PROGRAM DESCRIPTION 2"
我想將它們分成2索引數組,如:["07.00", "PROGRAM DESCRIPTION 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(' ');
;)
您需要的模式,這是可靠的somekind的。如果它總是你只是需要第一空白字符之間的分裂,你可以做的情況:
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);
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"]
這是靈活的,更容易的情況下,以適應改變格式(只是改變模式,並使用該變種你的代碼中的任何其他地方)
進一步的評論:例如,如果時間長度變化並變得可變(即07.00變成7:00,但也可能是19:00)可以做到e模式/([0-9]{1,2}(\.|:)[0-9]{2})\s(.+)/ – 2010-12-10 13:45:04
啊,我要+1你的分裂(「」,1),但顯然這只是丟棄其餘的分裂:http://www.w3schools.com/jsref/jsref_split .asp :( – 2010-12-10 13:30:05
Damnit !!!我沒有意識到。 – 2010-12-10 13:32:51