[英]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.