我有字符串
var v = "09/30/2016 12:00am - 2:00am";
我只需要获取此字符串的日期部分:"09/30/2016"
为此,我有正则表达式
var dateFormatRegex = /^(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])\/(19|20)\d\d$/ig;
但如果只有日期字符串,它只匹配字符串。
我应该在正则表达式中添加什么来从字符串09/30/2016
获取09/30/2016 12:00am - 2:00am
?
答案 0 :(得分:1)
你快到了!
你唯一的错误就是你在正则表达式的末尾加了一个$
,这使得它与你发布的那种字符串不匹配。
使用String.match
会返回一组匹配的组 - 在这种情况下,您只有一组,然后可以使用matches[0]
返回
var dateFormatRegex = /^(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])\/(19|20)\d\d/ig;
// removed $ as in the target strings there is still stuff after the date
var v = "09/30/2016 12:00am - 2:00am";
var matches = v.match(dateFormatRegex);
var date = matches[0]; // === 09/30/2016"