繁体   English   中英

JavaScript正则表达式-从字符串中获取第N个数字

[英]JavaScript Regex - Get Nth digits from string

我有一个以以下格式输出的日期字符串: 2014-11-28 00:00:00

我正在通过JS match和regex获得年份,以获取前四位数: match(/^[0-9]{4}/)

所以现在我也想获得月份和日期。 如果它们小于10,则以0开头,因此我认为最简单的方法是将月份的第6和7个字符以及白天的第8和9个字符拉出。

如何在jQuery / JavaScript中使用正则表达式执行此操作?

也许您可以尝试使用其他方法代替正则表达式来解决问题?

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"

阅读有关正则表达式捕获组的更多信息。

您可以使用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);

此正则表达式可满足您的目的:

/^(\d{4})-(\d{1,2})-(\d{1,2})/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM