JS日期时间格式判断

lhnlyy520 2011-12-10 12:21:30
<script>function CheckInput()
{
var regexDate = /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/; //日期
var txtDate= document.getElementById("<%= txtDate.ClientID%>");
if (TrimString(txtDate.value) != "" && txtDate.value.match(regexDate ) == null) {
returnValue += "请输入正确的Email!";
txtDate.focus();
}
if (returnValue != "") {
alert(returnValue);
return false;
}
return true;
}
</script>

如上面的脚本判断一个日期时间型的输入框的值,输入一个正确的日期时间型值,判断有时正确,有时就不正确。
如果是日期型的值,判断都是没有问题的。
就是日期时间型的值感觉是不是正则表达式还有哪不完善,或者还是有什么好的办法来判断日期时间的格式吗?
...全文
881 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalmeeme 2011-12-10
  • 打赏
  • 举报
回复
直接用插件或控件获取日期比较好,或者js用异常判断日期格式的合法性,或者把文本值ajax到服务器,服务器用DateTime.TryParse方法验证合法性。
  • 打赏
  • 举报
回复
一般日期都是用来让用户选择的,你完全可以找一个JS日期控件,只能让用户选择,这样,选择出来的日期肯定是正确的,也无需去判断
orain 2011-12-10
  • 打赏
  • 举报
回复
从字符串中提取到年月日之后转成 Date 对象来判断,简单的如

var y = 2011, m = 2, d = 29;
var testDate = new Date(y, m - 1, d); // JS 中,月的范围为 0~11
if (testDate.getFullYear() == y && testDate.getMonth() == m - 1 && testDate.getDate() == d)
alert("正确");

chen_ya_ping 2011-12-10
  • 打赏
  • 举报
回复
日期选择就行了,然后让那个文本框readonly,一切麻烦的事情都解决了啊,而且解决的也很好

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧