使用javascript正则表达式从日期字符串中检索年份

我必须从日期字符串中检索年份。 日期字符串格式应为以下任何格式。 我需要全球化代码来检索任何日期字符串格式的年份。

日期格式,“30/8/2013”​​,“08/30/2013”​​,30-8-2013“,”2013-08-30“,”30.8.2013“,”30-08-13“,”13 -08-30“等

看看这个图书馆。 http://momentjs.com/

这可能是您最好的选择。

01-02-03可能是2001-02-03或01-02-2003,如果你没有其他限制是不可能确定的。

对于“30/8/2013”​​,“08/30/2013”​​,30-8-2013“,”2013-08-30“,”30.8.2013“,您可以使用此正则表达式:

var pat = /(\d{4})[\-\/\.]\d+[\-\/\.]\d+|\d+[\-\/\.]\d+[\-\/\.](\d{4})/; r = "30/8/2013".match(pat); console.log(r); r = "08/30/2013".match(pat); console.log(r); r = "30-8-2013".match(pat); console.log(r); r = "2013-08-30".match(pat); console.log(r); r = "30.8.2013".match(pat); console.log(r); r = "30-08-13".match(pat); console.log(r); r = "13-08-30".match(pat); console.log(r); 

哪个输出:

 ["30/8/2013", undefined, "2013", index: 0, input: "30/8/2013"] test.js:2 ["08/30/2013", undefined, "2013", index: 0, input: "08/30/2013"] test.js:3 ["30-8-2013", undefined, "2013", index: 0, input: "30-8-2013"] test.js:4 ["2013-08-30", "2013", undefined, index: 0, input: "2013-08-30"] test.js:5 ["30.8.2013", undefined, "2013", index: 0, input: "30.8.2013"] test.js:6 null test.js:7 null test.js:8 

试试这样

 var myDate="30.08.2013"; if(myDate.indexOf(".")!= -1){ var spliter="."; }else if(myDate.indexOf("/")!= -1){ var spliter="/"; } else if(myDate.indexOf("-")!= -1){ var spliter="-"; } var year=""; var myDateAray= myDate.split(spliter); for( i=0;i 2){ year=myDateAray[i]; break; } } alert(year);