如何通过javascript验证日期时间字段输入?

时间:2011-05-05 06:24:40

标签: jquery javascript

我有一个HTML页面,其中有几个字段,其中一个是使用jquery插件选择DateTime,它允许用户选择DateTime,如:2011-06-05 07:102011-03-05 11:10等。我的问题是怎么做我在将此字段值发布到服务器之前验证该字段值。我想使用javascript确保字段值仅为此格式的DateTime,并且不是"2231""afaf"之类的无效值。

2 个答案:

答案 0 :(得分:1)

如果用户想要篡改他发送的数据,他会通过规避jQuery插件以及客户端上的任何其他验证代码来实现。那么在客户端上编写额外的验证代码是没有意义的。

如果用户想要篡改他发送的数据,那么jQuery插件应该确保适当的格式。那么在客户端上编写额外的验证代码是没有意义的。

仅在服务器上验证此字段。

答案 1 :(得分:0)

你也必须在服务器上验证。

客户端测试类似日期字符串的最简单方法是使用Date.parse这样(我没有测试格式而不是使用日期解析。如果用户输入另一种格式,则需要测试太)

var DT = Date.parse(DateTime.replace("-","/","g"));
if (isNaN(DT)) {
  alert('Invalid date');
  return false;
}
var testDate = new Date(DT);
var parts = DateTime.split(" ")[0].split("-");
if (testDate.getFullYear() != parseInt(parts[0]) ||
    testDate.getMonth() != parseInt(parts[1]-1) ||
    testDate.getDate() != parseInt(parts[2])) {
  alert('Invalid date');
  return false;
}

如果您使用小部件来创建日期,这当然是完全没必要的。