我有一个以这种格式输出的日期字符串:2014-11-28 00:00:00
我获得JS匹配和正则表达式获得前四位数的年份:match(/^[0-9]{4}/)
所以现在我也想要了解月份和日期。如果它们低于10,则前置0,所以我认为最简单的方法是拉出当月的第6和第7个字符以及当天的第8和第9个字符。
如何在jQuery / JavaScript中使用正则表达式执行此操作?
答案 0 :(得分:3)
也许您可以针对问题尝试不同的方法而不是正则表达式?
Date
对象似乎足以满足您的目的。
var d = new Date('2014-11-28 00:00:00');
d.getFullYear(); // returns 2014
d.getMonth(); // return 10
d.getDay(); // returns 28
如果你真的想使用正则表达式,这将捕获你想要的组:
var foo = '2014-11-28 00:00:00'.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/);
foo[1]; // returns "2014"
foo[2]; // returns "11"
foo[3]; // returns "28"
答案 1 :(得分:1)
您可以使用match()
或split()
完成此操作。
使用match()
:
var date = '2014-11-28 00:00:00',
pattern = /^(\d{4})-(\d{1,2})-(\d{1,2})/
dateElements = date.match(pattern),
day = dateElements[3],
month = dateElements[2],
year = dateElements[1];
alert('Day = ' + day + ', Month = ' + month + ' & Year = ' + year);
或使用split()
:
var date = '2014-11-28 00:00:00',
str = date.substring(0, date.length - 9),
dateElements = str.split('-'),
day = dateElements[2],
month = dateElements[1],
year = dateElements[0];
alert('Day = ' + day + ', Month = ' + month + ' & Year = ' + year);
答案 2 :(得分:1)
此正则表达式适用于您的目的:
/^(\d{4})-(\d{1,2})-(\d{1,2})/