2015-04-30 25 views
4

我想這種字符串的分裂:拆分日期! (這是一個字符串實際上)

"14:30 - 19:30" or "14:30-19:30" 

JavaScript數組裏面像["14:30", "19:30"]

,所以我有我的變量

var stringa = "14:30 - 19:30"; 
var stringes = []; 

我應該做的正則表達式?我想我需要一個幫助

+0

我只想分裂的儀表板和修剪結果...也許如果您不確定那'stringa'將遵循格式,用正則表達式測試...... – Timigen

+5

'var arr = stringa.split(' - ')。map(function(x){return x.trim()});' – adeneo

+1

adeneo,出於某些原因,總是有內聯的解決方案,大多數不會,大聲笑。 +1 – briosheje

回答

2

你可以用str.split:對

var stringa = "14:30 - 19:30"; 
var res = str.split("-"); 
2

如果您知道,只有'-'現在將是分隔符,你可以開始分裂:

let parts = input.split('-'); 

如果你需要擺脫周圍的空白,你應該修剪每個部分:

parts = parts.map(function (it) { return it.trim(); }); 

爲了驗證這些部分,你可以使用正則表達式:

parts = parts.filter(function (it) { return /^\d\d:\d\d$/.test(it); }); 

組合:

var input = "14:30 - 19:30"; 
 
var parts = input.split('-').map(function(it) { 
 
    return it.trim(); 
 
}).filter(function(it) { 
 
    return /^\d\d:\d\d$/.test(it); 
 
}); 
 

 
document.getElementById('results').textContent = JSON.stringify(parts);
<pre id="results"></pre>

1

試試這個:

var stringa = "14:30 - 19:30"; 
var stringes = stringa.split("-"); // string is "14:30-19:30" this style 

or 

var stringes = stringa.split(" - "); // if string is "14:30 - 19:30"; style so it includes the spaces also around '-' character. 

分割功能打破了基於th的子字符串中的字符串e你輸入的子字符串的位置「 - 」

。第一個根據「 - 」的位置拆分它,第二個包含空格也是「 - 」。

*它看起來更像24小時制時間格式,而不像您在問題中提到的那樣。

0

.split可能是最好的方法,但您需要先準備字符串。我會去str.replace(/\s*-\s*/g, '-').split('-')。證明:

var str = "14:30 - 19:30" 
var str2 = "14:30-19:30" 
console.log(str.replace(/\s*-\s*/g, '-').split('-')) //outputs ["14:30", "19:30"] 
console.log(str2 .replace(/\s*-\s*/g, '-').split('-')) //outputs ["14:30", "19:30"] 
1
var stringa = '14:30 - 19:30'; 
var stringes = stringa.split("-"); 
+0

你會在你的數組中得到一個空格:應該修剪... –

0

不要忘了,你可以通過一個RegExpstr.split

'14:30 - 19:30'.split(/\s*-\s*/); // ["14:30", "19:30"] 
'14:30-19:30'.split(/\s*-\s*/); // ["14:30", "19:30"]