javascript - 从日期正则表达式中提取月、日和年

标签 javascript regex date

我有一个“mm/dd/yyyy”格式的日期。但是,根据日期或月份,不能保证“mm/dd”部分一定有两位数。所以日期可能是:

11/12/2014

或者
6/12/2014

或者
11/5/2014

在上述所有情况下,我都需要能够提取 mm 的每个值。 , dd , 和 yyyy所以我可以做这样的计算:
Month = regex that returns month part.
Day = regex that returns day part
Year = regex that returns 4 digits year part.

\d{2}/\d{2}/\d{2}匹配整个事情。

最佳答案

正则表达式解决方案
匹配所有日期的正确正则表达式是:\d{1,2}/\d{1,2}/\d{4} .符号{n,m}被称为 限制重复在这种情况下 \d{n,m}表示“在 n 和 m 位数之间(包括在内)”。您可以在此处阅读更多相关信息:Limiting Repetition .
如果要创建匹配组,请使用“(”和“)”(括号)。另外,在 JavaScript 中,你必须转义 /\因此你的正则表达式是:/(\d{1,2})\/(\d{1,2})\/(\d{4})/您可以使用 exec regexp 的函数来匹配字符串。它返回一个数组,其中包含匹配的文本作为第一个元素,然后每个匹配的组都有一个项目。
您可以在 MDN RegExp.prototype.exec 上找到更多信息或查看下面的示例:

const datePattern = /(\d{1,2})\/(\d{1,2})\/(\d{4})/;
const date = datePattern.exec("11/12/2014"); // ["11/12/2014", "11", "12", "2014"]
注:如果传递了无效字符串(与正则表达式不匹配)exec函数将返回 null .这是对用户的输入或数据进行简要验证的一种简单方法。
替代方案
或者,您可以简单地拆分字符串:
"11/12/2014".split('/'); // ["11", "12", "2014"]
但是不管字符串实际包含什么,这都可以工作(它可能包含字符串 "ba/tm/an" 并且 split 仍然会返回一个包含三个元素的数组)。因此,如果您想验证日期,Regexp 可能更合适。

关于javascript - 从日期正则表达式中提取月、日和年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934703/

相关文章:

javascript - 列表过滤器不起作用

regex - 使用 sed 删除 csv 文件中的字符

MySQL 查询返回每个月之前创建的所有行

Excel 2010 日期格式不适用于某些单元格,但适用于其他单元格

javascript - 在 Javascript 中创建 Date() 时出错

javascript - 另一种情况是组件的状态发生变化但组件似乎没有变化

javascript - 暂时停止函数jquery

javascript - 当有多个按钮使用相同功能时,使用单击处理程序更改按钮的颜色

regex - 如何从类中排除某些字符?

html - 用于缩进行的正则表达式