【发布时间】:2014-03-29 13:22:45
【问题描述】:
我有一个文本输入字段,可以在其中输入日期。由于各种原因,我无法使用日期选择器。我希望能够以任何格式输入日期,例如 d/m/yy 或 dd/mm/yy 或 dd/mm/yyyy...等
输入其中一种格式并关闭后,我希望将文本值(假设输入有效)设置为 dd/mm/yyyy 格式的输入日期。例如,如果您输入了 1/3/14,我希望将文本设置为 01/03/2014。
到目前为止,我已经做到了这一点,但似乎不太正确:-
$('.someDate').on("blur", function (event) {
var dateRegEx = '^(?:(1[0-2]|0?[1-9])[- /.](3[01]|[12][0-9]|0?[1-9])|(3[01]|[12][0-9]|0?[1-9])[- /.](1[0-2]|0?[1-9]))[- /.](?:[0-9]{2})?[0-9]{2}$';
var day = 0;
var month = 0;
var year = 0;
var matchArray = $(this).val().match(dateRegEx);
month = matchArray[0];
day = matchArray[1];
year = matchArray[2];
//work out what is the year, month, date etc and set the input text to this
});
对此的任何帮助将不胜感激
【问题讨论】:
-
什么以及为什么看起来不太正确?
-
@Simon,如果我输入 2014 年 1 月 3 日,我希望它会出现 1 代表日、3 代表月和 14 代表年。年份总是空白 - 我已尝试更改索引。
-
所以你要求正确的正则表达式...
-
@Simon,我不擅长 RegEx,所以是的,那将是理想的。应该可以从那里完成剩下的工作。