猿问

Javascript:如何以MM-DD-YYYY格式验证日期?

Javascript:如何以MM-DD-YYYY格式验证日期?

我在这里看到了一个潜在的答案,但那是YYYY-MM-DD:JavaScript日期验证

我为MM-DD-YYYY修改了上面的代码,但我还是无法让它工作:

String.prototype.isValidDate = function() {
     var IsoDateRe = new RegExp("^([0-9]{2})-([0-9]{2})-([0-9]{4})$");
     var matches = IsoDateRe.exec(this);
     if (!matches) return false;
     var composedDate = new Date(matches[3], (matches[1] - 1), matches[2]);
     return ((composedDate.getMonth() == (matches[1] - 1)) &&
      (composedDate.getDate() == matches[2]) &&
      (composedDate.getFullYear() == matches[3]));}

如何让上述代码适用于MM-DD-YYYY,更好的是MM / DD / YYYY?

谢谢。


慕姐8265434
浏览 598回答 3
3回答

沧海一幻觉

function isValidDate(date){    var matches = /^(\d{1,2})[-\/](\d{1,2})[-\/](\d{4})$/.exec(date);    if (matches == null) return false;    var d = matches[2];    var m = matches[1] - 1;    var y = matches[3];    var composedDate = new Date(y, m, d);    return composedDate.getDate() == d &&            composedDate.getMonth() == m &&            composedDate.getFullYear() == y;}console.log(isValidDate('10-12-1961'));console.log(isValidDate('12/11/1961'));console.log(isValidDate('02-11-1961'));console.log(isValidDate('12/01/1961'));console.log(isValidDate('13-11-1961'));console.log(isValidDate('11-31-1961'));console.log(isValidDate('11-31-1061'));有用。(使用Firebug测试,因此使用console.log()。)

缥缈止盈

function&nbsp;isValidDate(date)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;valid&nbsp;=&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date&nbsp;=&nbsp;date.replace('/-/g',&nbsp;''); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;month&nbsp;=&nbsp;parseInt(date.substring(0,&nbsp;2),10); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;day&nbsp;&nbsp;&nbsp;=&nbsp;parseInt(date.substring(2,&nbsp;4),10); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;year&nbsp;&nbsp;=&nbsp;parseInt(date.substring(4,&nbsp;8),10); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isNaN(month)&nbsp;||&nbsp;isNaN(day)&nbsp;||&nbsp;isNaN(year))&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((month&nbsp;<&nbsp;1)&nbsp;||&nbsp;(month&nbsp;>&nbsp;12))&nbsp;valid&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if((day&nbsp;<&nbsp;1)&nbsp;||&nbsp;(day&nbsp;>&nbsp;31))&nbsp;valid&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(((month&nbsp;==&nbsp;4)&nbsp;||&nbsp;(month&nbsp;==&nbsp;6)&nbsp;||&nbsp;(month&nbsp;==&nbsp;9)&nbsp;||&nbsp;(month&nbsp;==&nbsp;11))&nbsp;&&&nbsp;(day&nbsp;>&nbsp;30))&nbsp;valid&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if((month&nbsp;==&nbsp;2)&nbsp;&&&nbsp;(((year&nbsp;%&nbsp;400)&nbsp;==&nbsp;0)&nbsp;||&nbsp;((year&nbsp;%&nbsp;4)&nbsp;==&nbsp;0))&nbsp;&&&nbsp;((year&nbsp;%&nbsp;100)&nbsp;!=&nbsp;0)&nbsp;&&&nbsp;(day&nbsp;>&nbsp;29))&nbsp;valid&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if((month&nbsp;==&nbsp;2)&nbsp;&&&nbsp;((year&nbsp;%&nbsp;100)&nbsp;==&nbsp;0)&nbsp;&&&nbsp;(day&nbsp;>&nbsp;29))&nbsp;valid&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if((month&nbsp;==&nbsp;2)&nbsp;&&&nbsp;(day&nbsp;>&nbsp;28))&nbsp;valid&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;valid;}这将检查每个月的有效天数和有效的闰年天数。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答