如何检查Text中输入的是正确的日期,即数据合法性检查???

零基础学编程by学哥 2001-05-16 03:20:00
加精
if (s1.length()!=8)
{
sr="<font color=red>The input :</font>"+s1+"<font color=red> length must be 8 and yyyymmdd type.</font>";
}
else
{//add code to do check the date or time type is well or not.
}
...全文
167 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lci21 2001-09-28
  • 打赏
  • 举报
回复
sigh
  • 打赏
  • 举报
回复
这个问题,解决的方法很多。
skyyoung 2001-05-17
  • 打赏
  • 举报
回复
楼上洗咩甘麻烦啊,用正则表达式咪得罗。
function validateUSDate( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains only
valid dates with 2 digit month, 2 digit day,
4 digit year. Date separator can be ., -, or /.
Uses combination of regular expressions and
string parsing to validate date.
Ex. mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy

PARAMETERS:
strValue - String to be tested for validity

RETURNS:
True if valid, otherwise false.

REMARKS:
Avoids some of the limitations of the Date.parse()
method such as the date separator character.
*************************************************/
var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/

//check to see if in correct format
if(!objRegExp.test(strValue))
return false; //doesn't match pattern, bad date
else{
var strSeparator = strValue.substring(2,3) //find date separator
var arrayDate = strValue.split(strSeparator); //split date into month, day, year
//create a lookup for months not equal to Feb.
var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
'08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
var intDay = parseInt(arrayDate[1]);

//check if month value and day value agree
if(arrayLookup[arrayDate[0]] != null) {
if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
return true; //found in lookup table, good date
}

//check for February
var intYear = parseInt(arrayDate[2]);
var intMonth = parseInt(arrayDate[0]);
if( ((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0)
return true; //Feb. had valid number of days
}
return false; //any other values, bad date
}
  • 打赏
  • 举报
回复
我找到了一个日期合法性检查的东东,现在我的程序通过了。
<%!
public class checks
{
//检查日期是否有效
public boolean isValidDate (int Year, int Month, int Day) {
if(Year>=1900 && Year<=2050 && Month>=1 && Month<=12 && Day>=1 && Day<=31) {
boolean validDay = true;
switch(Month) {
case 2:
if( isLeapYear(Year) ) {
if(Day>29) validDay = false;
}
else {
if(Day>28) validDay = false;
}
break;
case 4:
if(Day == 31) validDay = false;
break;
case 6:
if(Day == 31) validDay = false;
break;
case 9:
if(Day == 31) validDay = false;
break;
case 11:
if(Day == 31) validDay = false;
}
return validDay;
}
return false;
}

//是否为闰年
public boolean isLeapYear(int year) {
if(year%4 == 0) {
if(year%100 == 0) {
if(year%400 == 0)
return true;
return false;
}
return true;
}
return false;
}

public String checkin(String s1,String t1)
{
String sr="";
if (t1=="1")//char
{
if (s1.length()>80)
{
sr="<font color=red>The input :</font>"+s1+"<font color=red> long more than 80.</font>";
}
}
else
{
if (t1=="2")//num
{
for (int i=0;i<s1.length() ;i++ )
{
char c1=s1.charAt(i);
if ((c1<'0') || (c1>'9'))
{
sr="<font color=red>The input :</font>"+s1+"<font color=red> is not the number.</font>";
break;
}
}
}
else
{
if (t1=="3")//time
{
if (s1.length()!=8)
{
sr="<font color=red>The input :</font>"+s1+"<font color=red> length must be 8 .</font>";
}
else
{//add code to do check the date or time type is well or not.
int iyear,imonth,iday;
iyear=Integer.valueOf(s1.substring(1,4)).intValue();
imonth=Integer.valueOf(s1.substring(5,6)).intValue();
iday=Integer.valueOf(s1.substring(7,8)).intValue();
if (!isValidDate(iyear,imonth,iday))
{
sr="<font color=red>The input :</font>"+s1+"<font color=red> must be yyyymmdd type.</font>";
}
}
}
}
}
return sr;
}
}
%>
BrentIvan 2001-05-16
  • 打赏
  • 举报
回复
好象没有,用try() catch吧
  • 打赏
  • 举报
回复
有没有JSP的?
BrentIvan 2001-05-16
  • 打赏
  • 举报
回复
用VbScript的IsDate检查吧,Js可以调用Vb的
<script language="VbScript">
Function ValidDate(str)
ValidDate = IsDate(str)
End Function
</script>
<script language="JavaScript">
var str1 = "2001-02-28", str2 = "2001-02-29";
alert(str1 + " is valid date? " + ValidDate(str1));
alert(str2 + " is valid date? " + ValidDate(str2));
</script>
内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。
内容概要:本文围绕Scratch图形化编程平台,详细阐述了《人体感应灯光系统》这一贴近生活的AI科创作品的设计与教学应用。通过模拟真实智能家居人体感应灯的工作原理,利用Scratch的侦测、逻辑判断、亮度特效调节等功能,实现了人物靠近自动亮灯、延时熄灭及环境亮度自适应等仿真功能。文章系统拆解了从场景搭建、核心逻辑设计、分层编程实现到调试优化的完整开发流程,并提供了基础版与进阶版可直接导入的源码,支持零基础快速上手与高阶创新拓展。同时构建了“基础—进阶—高阶”三层阶梯式教学体系,适配常规课堂、创客社团与赛事培优等多元教学场景,推动小学AI教育的生活化、实践化与创新化发展。 适合人群:小学高年级至初阶段学生,信息技术教师,创客教育从业者,以及参与青少年科创赛事的师生。 使用场景及目标:①作为小学人工智能通识课程的教学案例,帮助学生理解智能感应与控制逻辑;②用于校内创客社团开展项目式学习;③支撑学生参加AI科创类赛事,完成高质量作品创作与答辩准备;④布置为课后综合实践作业,提升动手能力与科技素养。 阅读建议:建议结合提供的Scratch源码进行实践操作,在复现基础上尝试参数调优与功能扩展,如增加音效提示、多区域感应等,深化对编程逻辑与智能系统设计的理解。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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