2015-12-04 32 views
0

我使用jQuery來排序一些日期。jQuery「拆分」選項?

多數民衆贊成在HTML DIV:

<div class="the_date">30/11/2015, 19:24</div> 

那的jQuery的一部分:

var date1 = $(a).find(".the_date").text(); 
    date1 = date1.split('/'); 
    date1 = new Date(date1[2], date1[1] - 1, date1[0], date1[3], date1[4]); 

我的問題:如果日期是這樣的(因爲拆分選項),它將只適用:

<div class="the_date">30/11/2015/19/24</div> 

有沒有辦法以不同的方式拆分?例如第一個「/」,如果不存在「,」如果不存在「:」?或者這是一個壞方法?

+0

看http://momentjs.com/ - 做不到這一點,瞭解正則表達式,這將做你的需要。 –

+0

好吧,我會看看。 – Pepe

回答

1
date1 = date1.split(/\/|,|:/g); 
+0

結果在''19「' – epascarello

+0

支持的大thx,多數民衆贊成我正在尋找! – Pepe

+0

@epascarello Date構造函數不介意這個空間。但我更喜歡你的解決方案:-) – spozun

3

不用擔心匹配所有不同的分隔符。剛剛與regular expression\d+匹配的數字:

"30/11/2015, 19:24".match(/\d+/g).map(Number); 

注:不需要的.map(Number),它只是字符串數組轉換爲數字一個整潔的方式。

結果與:[30, 11, 2015, 19, 24]
結果而不:["30", "11", "2015", "19", "24"]

+0

Thx支持!你能否再解釋一下 - 我不太擅長jQuery,謝謝! – Pepe

+0

這不是jQuery ....它是純粹的JavaScript。增加了更多細節。 – epascarello

+0

你的方式看起來專業,但spozuns方式更多的是我正在尋找 - 但thx! – Pepe

-1

split該方法接受正則表達式作爲參數傳遞給通過分割。

下面是一些例子:

var str = '30/11/2015, 19:24'; 
var parts = str.split(/[\/,: ]+/); // split by a specific set of characters 
console.log(parts); 
// ["30", "11", "2015", "19", "24"] 
var str = '30/11/2015, 19:24'; 
var parts = str.split(/\D+/); // split by all non-digit characters 
console.log(parts); 
// ["30", "11", "2015", "19", "24"] 
+0

也thx支持!我會試試..... – Pepe