2013-02-25 51 views
0

我希望有一个非常简单的问题。我想要做的是将我创建的日期对象转换为与正则表达式的格式匹配。问题在于我在控制台中保持的值为空。关于如何修改我的代码以获得我创建的正则表达式的日期格式的任何建议?显示日期格式,使用正则表达式

function getDate() { 
     var newdate = new Date(); 
     var results = newdate.toDateString(); 
     var exp = new RegExp("[0-9]{4}\\.\[0-9]{2}\\.\[0-9]{2}"); 
     var newresults = results.match(exp); 
     console.log(newresults); 
    } 
+0

什么做你的研究告诉你被对手()函数返回? – 2013-02-25 19:07:54

+0

'result'的值是'“Mon Feb 25 2013”​​'(在Chrome中)。你的正则表达式不符合这个,所以你为什么期望它返回一些东西? – Barmar 2013-02-25 19:27:44

回答

1

而不是使用toDateString的,使用date methods一块来建立你的串片:

var results = newdate.getFullYear() + '.' + 
    newdate.getMonth() + '.' + newdate.getDate(); 

这是不可能的说,如果你想一个月,然后一天或一天​​,然后一个月,所以如果将它们翻转你需要。

编辑:你需要垫零的月份和日期,以适应正则表达式:

String.prototype.padZero = function() { 
    if (this.length === 1) { 
     return '0' + this; 
    } else { 
     return this; 
    } 
}; 

var year = newdate.getFullYear(); 
var month = newdate.getMonth().toString(); 
var day = newdate.getDate().toString(); 

var results = year + '.' + month.padZero() + '.' + day.padZero(); 

http://jsfiddle.net/WVCfz/

+0

谢谢,但实际上也会返回null – user2084813 2013-02-25 19:20:15

+0

这是因为月份和日期不会填充零,如果他们只有一个数字。请参阅我的编辑修复。 – jbabey 2013-02-25 19:32:56