2012-01-13 2 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

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

+0

@ epascarello - предположительно, это ваш голос. Странно, так как этот ответ почти точно совпадает с принятым ответом. – RobG

+0

@RobG, отредактированное пользователем за 3 минуты, так как это не оригинальный код, который был только кодом даты. :) Исходный код был просто 'new Date (" 2012-01-01 ")' – epascarello

0

Разбор строки всегда боль. Тем более при анализе даты из строки, учитывая разные форматы, которые могут иметь даты. Если дата всегда будет xxxx-xx-xx, вы можете использовать разделение функции split() в пространстве "", а затем перебирать массив, чтобы найти строку, которая может успешно проанализировать дату.

Основываясь на моем опыте, однако, если вы можете получить его, чтобы ваша дата пришла к вам в лучшем виде, вам будет намного легче.

+0

Даты всегда будут в этом формате. Итак, как я могу получить дату из массива? – IMcD23

+0

oh .. другие предложили регулярное выражение для соответствия шаблону. если вы можете гарантировать формат, то это самое лучшее. :) – gdbj

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 если желаете.