如何对输入年月日的格式进行判断?
如何对输入年月日的格式进行判断?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>zuoye2</title> </head> <body> <script type="text/javascript"> function count() { var year=parseInt(prompt("请输入出生年份")), month=parseInt(prompt("请输入出生月份")), day=parseInt(prompt("请输入出生日期")); var i,mdays,sum=0; for(i=1;i<month;i++) { if(i==4||i==6||i==9||i==11) { mdays=30; }else if(i==2) { if(year%4==0&&year%100!=0||year%400==0) { mdays=29; }else { mdays=28; } }else { mdays=31; } sum+=mdays; } sum+=day; document.write("您出生在"+year+"年的第"+sum+"天"); return sum; } count(); </script> </body> </html>
0
收起
正在回答
5回答
1、输出的结果中year拿到的是在外面定义的year,也就是第一次输入的错误year,用parseInt()转化之后就是NaN,在count方法中才改变year的值,所以调用count之后才是输入正确的。可以这样修改:
2、如果输入19*87,用parseInt转化之后是19,再用isNaN()判断是没有问题的,所以最后输出结果为19。在使用isNaN()判断之前可以不用转化,直接判断即可。
自己可以再测试下。
qq_鸭绿桥第一帅哥_0
2018-12-02 11:11:56
老师您说的我都明白了,我把代码按您的思路改了。
问题一:当先输入年份为*1987,然后输入正确年份1987。代码显示的结果是:您的生日是NaN年的第某天。为什么年份显示为NaN?
问题二:当先输入年份为19*87,代码没有弹出:年份输入错误,请重新输入。代码显示的结果是:您的生日是19年的第某天。为什么年份显示为19?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>zuoye3</title> </head> <body> <script type="text/javascript"> var year=parseInt(prompt("请输入您的生日年份")); function count() { //输入年月日,并对输入的年月日格式进行判断。 while(isNaN(year)) { year=parseInt(prompt("您输入的年份有误,请再次输入")); } var month=parseInt(prompt("请输入您的生日月份")); while(isNaN(month)||month>12||month<1) { month=parseInt(prompt("您输入的月份有误,请再次输入")); } var day=parseInt(prompt("请输入您的生日日期")); while(isNaN(day)) { month=parseInt(prompt("您输入的日期有误,请再次输入")); } var month_count,//用于存放大小月份的参数。 sum=0;//用于存放日期的和。 for(i=1;i<month;i++) { if(i==4||i==6||i==9||i==11) { month_count=30; }else if(i==2) { if(year%4==0&&year%100!=0||year%400==0) { month_count=29; }else { month_count=28; } }else { month_count=31; } sum+=month_count; } sum+=day; return sum; } document.write("您的生日是"+year+"年的第"+count()+"天"); </script> </body> </html>
qq_鸭绿桥第一帅哥_0
2018-12-01 09:23:24
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>zuoye3</title> </head> <body> <script type="text/javascript"> function count() { //输入年月日,并对输入的年月日格式进行判断。 var year=parseInt(prompt("请输入您的生日年份")); if(isNaN(year)) { year=parseInt(prompt("您输入的年份有误,请再次输入")); } var month=parseInt(prompt("请输入您的生日月份")); if(isNaN(month)||month>12||month<1) { month=parseInt(prompt("您输入的月份有误,请再次输入")); } var day=parseInt(prompt("请输入您的生日日期")); if (isNaN(day)) { month=parseInt(prompt("您输入的日期有误,请再次输入")); } var month-count,//用于存放大小月份的参数。 sum=0;//用于存放日期的和。 for(i=1;i<month;i++) { if(i==4||i==6||i==9||i==11) { month-count=30; }else if(i==2) { if(year%4==0&&year%100!=0||year%400==0) { month-count=29; }else { month-count=28; } }else { month-count=31; } sum+=month-count; } sum+=day; return sum; } document.write("您的生日是"+year+"年的第"+count()+"天"); </script> </body> </html>
老师我的代码为什么不能实现效果?
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星