我已经搜索过,没有看到这个答案,所以我希望这不是重复/重复的问题。
我正在从字符串中提取日期,但是蛾和天可能是1位或2位。也就是说,可以是: -“ 1/1/2018” -“ 2018年12月1日” -“ 2018年1月12日” -“ 12/12/2018”
我已经看到了如何在数字为预期大小不变的情况下进行正则表达式-或用零填充
List
但是如何使第一个数字为可选。如果第一个数字在那里,那么如何抓住他们两个。
答案 0 :(得分:1)
保持您的想法
(0[1-9]|1[012]|[1-9])[- \/.](0[1-9]|[12][0-9]|3[01]|[1-9])[- \/.](19|20)\d\d
或者您可以将日期和月份中的前导零设为可选
(0?[1-9]|1[012])[- \/.](0?[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d
问号定义为“在0到1次之间匹配,尽可能多次匹配,并根据需要返回”,请参见https://www.regular-expressions.info/optional.html
答案 1 :(得分:1)
您可以使用+
量词来匹配前面的一项或多项。就您而言,[0-9]+
(或\d+
)将与1或12或2018相匹配。
答案 2 :(得分:0)
这是提取日期的简单方法
function extractDate(dateString){
var tempArray = dateString.split("/");
var dateVal = tempArray[0];
var monthVal = tempArray[1];
var yearVal = tempArray[2];
console.log(dateVal);
console.log(monthVal);
console.log(yearVal);
}
//Demo 1
extractDate("1/1/2018");
//Demo 2
extractDate("1/12/2018");
//Demo 3
extractDate("12/12/2018");
答案 3 :(得分:0)
尝试此正则表达式。
\d+/\d+/-\d{4}