2011-12-07 94 views
-1

下面的代碼適用於我,但似乎相當冗長。我可以縮短它嗎?用JavaScript分割字符串

var str = "some title of an event here, weekday 17:00 – 18:00 o’clock, with name of a person"; 
var date = str.split(', '); 
var time = date[1].split(' '); 
var timeItems = time[1].split('–'); 
var startTime = timeItems[0].trim(); 
var endtime = timeItems[1].trim(); 
alert("event lasts from "startTime + " to " + endtime); 

感謝

+1

如果它按預期工作,沒有什麼可以解決的。繼續:) – Alfabravo

+3

有沒有jQuery? – Prisoner

回答

1

是你想要的所有startTimeendTime?如果是這樣,你可能只是做split()上冒號:

times = str.split(':'); 
startTime = times[0].slice(-2) + ':' + times[1].slice(0,2); 
endTime = times[1].slice(-2) + ':' + times[2].slice(0,2); 
alert("event lasts from " + startTime + " to " + endTime); 
1

雖然正則表達式往往是矯枉過正,他們會幫助你在你這裏尋求短代碼:

var str = "some title of an event here, weekday 17:00 – 18:00 o’clock, with name of a person"; 
var times = str.match(/\d\d?:\d\d/g); 
alert("event lasts from " + times[0] + " to " + times[1]); 

運行它在http://jsfiddle.net/jvs3s/