![](/img/trans.png)
[英]javascript regex to find string at nth line from a specific string
[英]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.