月份为1或2位数字的日期的正则表达式

时间:2018-08-30 17:04:21

标签: javascript regex

我已经搜索过,没有看到这个答案,所以我希望这不是重复/重复的问题。

我正在从字符串中提取日期,但是蛾和天可能是1位或2位。也就是说,可以是: -“ 1/1/2018” -“ 2018年12月1日” -“ 2018年1月12日” -“ 12/12/2018”

我已经看到了如何在数字为预期大小不变的情况下进行正则表达式-或用零填充

List

但是如何使第一个数字为可选。如果第一个数字在那里,那么如何抓住他们两个。

4 个答案:

答案 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");

Plunker Link for testing

答案 3 :(得分:0)

尝试此正则表达式。

\d+/\d+/-\d{4}