【发布时间】:2016-01-26 09:46:36
【问题描述】:
我有一个 MVC 日期字段,我正在尝试将其验证为 mm/dd/yyyy 格式。我不希望用户输入 1,2 或 3 位数字作为年份。而且,我想确保输入了有效的日期。这是我正在使用的代码:
<script type="text/javascript">
$(function () {
$('.datepicker').datepicker();
ForceDatePickerFormat();
});
function ForceDatePickerFormat() {
$(".datepicker").on("blur", function (e) {
var date, day, month, newYear, value, year;
value = e.target.value;
if (value.search(/(.*)\/(.*)\/(.*)/) !== -1) {
date = e.target.value.split("/");
month = date[0];
day = date[1];
year = date[2];
if (year === "") {
year = "0";
}
if (year.length < 4) {
alert ("Date year must by 4 digits");
}
}
});
}
</script>
我使用“模糊”是因为“keyup”在用户尝试更改它的年份引起了一个奇怪的问题。 “模糊”很好,除了用户必须单击以使日历消失,选项卡不起作用,单击日期不起作用。如果用户点击返回,它会接受日期而不进行验证。我需要允许用户手动输入日期,因为他们以后经常输入日期。有没有人对如何调整它有任何建议,以便单击日期关闭日历,选项卡关闭日历,并且日期仍然有效?
【问题讨论】:
-
或者在代码中使用这个正则表达式 ::: -- '((?:[0]?[1-9]|[1][012])[-:\\/. ](?:(?:[0-2]?\\d{1})|(?:[3][01]{1}))[-:\\/.](?:(?:[ 1]{1}\\d{1}\\d{1}\\d{1})|(?:[2]{1}\\d{3})))(?![\\d ])';
标签: javascript validation date datepicker