簡體   English   中英

javascript通過正則表達式提取日期

[英]javascript extract date via regular expression

我對正則表達式不太了解,但是我有一個字符串(url),我想從中提取日期:

var myurl = "https://example.com/display/~test/2010/07/06/Day+2.+Test+Page";

我想從中提取2010/07/06 ,此外,我希望將其格式化為6th of July, 2010

正則表達式不是必需的。 split()slice()也可以做到:

var myurl = "https://example.com/display/~test/2010/07/06/Day+2.+Test+Page";
var parts = myurl.split("/");  // ["https:", "", "example.com", "display", "~test", "2010", "07", "06", "Day+2.+Test+Page"]
var ymd   = myurl.slice(5,8);  // ["2010", "07", "06"]
var date  = new Date(ymd);     // Tue Jul 06 2010 00:00:00 GMT+0200 (W. Europe Daylight Time)

有幾種全面的日期格式庫,我建議您選擇其中一種,不要嘗試自己動手使用。

根據URL的更改方式,可以使用類似以下的內容:

\/\d{4}\/\d{2}\/\d{2}\/

上面的代碼將提取/2010/07/06/ 2010/07/06 /2010/07/06/ (為了更安全,兩個斜杠-您可以刪除標題和結尾的\\/以獲得2010/07/06 ,但是如果URL包含其他可能會導致問題的網址,比賽)。

請參閱此處的在線正則表達式示例:

這是jsfiddle:

要格式化它,請看例如這里:

這些內容(請注意,您需要上面的功能):

var dt = new Date(2010, 6, 6);
dateFormat(dt, "dS of mmmm, yyyy");
// 6th of June, 2010
var myurl = "https://example.com/display/~test/2010/07/06/Day+2.+Test+Page";

var re = /(\d{4})\/(\d{2})\/(\d{2})/
var months = ["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];

var parts = myurl.match(re)

var year = parseInt(parts[1]);
var month = parseInt(parts[2],10);
var day = parseInt(parts[3],10);

alert( months[month] + " " + day + ", " + year );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM