在JS

2012-01-13 44 views
0

從字符串中提取日期我有一個字符串,像這樣:在JS

var string = "some text 2012-01-01 some more text here" 

我希望能夠提取此字符串的日期,或任何類似的一個,並存儲在2012-01 -01或任何有變數的日期。

我發現了.match()方法,但我堅持從那裏。

感謝

回答

1
var str = "some text 2012-01-01 some more text here"; 
var rex = /\d{4}-\d{2}-\d{2}/; 
alert(str.match(rex)); 
+0

注意到'str.match()'將返回一個或多個匹配的數組,或者是'null'。 – RobG 2012-01-13 00:44:25

0
var string = "some text 2012-01-01 some more text here"; 

// you will be using regular expressions 
string.match(/(\d{4}-\d{2}-\d{2}/)); 
+0

海報問如何從字符串中獲取日期,您的答案不會回答。 – epascarello 2012-01-13 00:07:09

+0

@ epascarello - 大概是你的投票。奇怪,因爲這個答案几乎和接受的答案一樣。 – RobG 2012-01-13 00:46:29

+0

@RobG,在3分鐘內編輯的人,因爲那不是原來的代碼,只是日期代碼。 :)原始代碼只是'新日期(「2012-01-01」)' – epascarello 2012-01-13 03:20:12

0

解析字符串是永遠的痛。在給出日期可能具有的不同格式的情況下從字符串中解析日期時更是如此。如果日期始終爲xxxx-xx-xx,則可以使用split()函數分割空間「」,然後遍歷數組以查找可成功解析爲日期的字符串。

但是,根據我的經驗,如果你能得到它,那麼你的日期就會以更好的方式給你,這對你來說將會輕鬆許多倍。

+0

日期將始終採用該格式。那麼我將如何去取出數組中的日期呢? – IMcD23 2012-01-13 00:05:14

+0

哦..其他人已經建議用於匹配模式的正則表達式。如果你可以保證格式,那麼這是最好的。 :) – gdbj 2012-01-13 00:08:09

0
var str="some text 2012-01-01 some more text here"; 
var pattern=/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/gi; 
alert(str.match(pattern)); 

jsFiddle如果你願意。