js日期校验

JavaScript010

js日期校验,第1张

function check(date){return (new Date(date).getDate()==date.substring(date.length-2))}//参数date可以格式化为xx-xx-xx或xxxx-xx-xx或用/分割附:

通常来说,javascript验证日期的有效性可以通过正则判断

但正则表达式无法精准验证日期的有效性,你无法通过正则表达式判断出1900-02-29是非法日期而2000-02-29是合法日期,而且正则表达式匹配起来比较繁琐。

要想精确验证,最容易想到的方法就是通过月份判断日期是否合法(1~28/29/30/31),你可以用一个数组表示每月的天数,如daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],但你会发现daysInMonth[1]这个值可能是28或29,你又要写一个判断闰年的函数来解决这个问题......

这至少要花费20行以上的代码来完成这件事,而通过javascript中的Date对象,我们只需要1行代码即可完成上述功能。

function check(date){

return (new Date(date).getDate()==date.substring(date.length-2))

}

date为一个待检查的类日期字符串(如2013-01-01、2013/01/01、2013/01/32、2013/02/29),不论这个字符串是否正确

通过新建的Date对象(new Date(date)),可以识别出该日期是否正确,如果不正确则返回Invalid Date

但这样会有一个bug,当日期的值在1-31之间,new Date总返回一个新的对象,不论该月份是否存在这个日期(如2013-02-30将返回日期对象Sat Mar 02 2013 08:00:00 GMT+0800 (中国标准时间)),返回结果是下个月的日期而不报错

所以要用getDate()方法获取日期(new Date('2013-02-30')对象的getDate()方法将返回2)

date.substring(date.length-2)会获取到字符串最后两位也就是日期的部分,这与Date对象的日期部分做比较,如果相等则说明日期有效,否则为无效日期

如果日期无效则'=='左边值为NaN,右边无论是什么(''、null、undefined、NaN等)结果都为false

打字不易,如满意,望采纳。

那你肯定是 前端工程师咯

这些东西 看着简单 实际上还是有一些名堂的

比如现在 html5 css3 你掌握了么? html5里面的canvas 相当厉害 也需要学很久

你说 js 学会了? jq 会了么? 各种各样的js插件呢?

还需要学一些调试能力 这都不说了

另外 需要 掌握一点点 页面设计基础 ui 能力 这样就是一个标准的 web 前端工程师了 就可以 该干嘛就干嘛了

如果还要深造 就是后台了 php asp jsp 什么的 现在看 php 比较好一点

你去学一下 然后下一个 wamp 什么的 在自己机子上 独立建立一个网站 就差不多 有站长的能力了~~ 那就 就业更广阔咯