2011-05-24 69 views
0

我需要JavaScript样本代码来验证日期格式为mm-dd-yyyy。使用javascript进行日期验证

1)如果用户输入错误的日期就上述日期格式。

2)日期范围验证,开始日期和结束日期范围验证。

对此的任何帮助表示赞赏。

问候, Chaitu

+4

你试过什么吗?甚至在互联网上搜索这个? – 2011-05-24 11:51:52

+1

你到目前为止尝试过什么?你碰到什么方法和什么问题? – Xhalent 2011-05-24 11:52:42

+0

使用StackOverflow.com的内置善良和搜索[“数据验证JavaScript”](http://stackoverflow.com/search?q=date%20validation%20javascript)或[“javascript数据验证范围”](http: //stackoverflow.com/search?q=javascript%20date%20validation%20range)。用不同的方法找到好的答案,如: - http://stackoverflow.com/questions/2271389/validation-for-date - http://stackoverflow.com/questions/2227447/date-validation - http:// stackoverflow。 com/questions/240293/date-parsing-and-validation-in-javascript - http://stackoverflow.com/questions/5755327/date-range-restriction – haylem 2011-05-24 12:00:34

回答

1

验证的格式可能是这样的:

function isValidDateFormat(s) { 
    return /^\d\d-\d\d-\d\d\d\d$/.test(s); 
} 

的日期范围,将字符串转换为Date对象,并把它比作约会对象的范围限制。

这里有一个日期验证功能 - 无需检查输入的格式,如果它是错的,函数返回false:

// Expects date in US-specific mm-dd-yyyy or 
// mm/dd/yyyy format 
function isValidDate(d) { 
    var bits = d.split(/[-/]/); 
    var date = new Date(bits[2] + '/' 
        + bits[0] + '/' 
        + bits[1]); 
    return date && (date.getMonth()+1) == bits[0] 
       && date.getDate() == bits[1]; 
} 

好,你现在如何验证格式,如何验证日期以及如何将字符串转换为日期对象。从这里进行比较应该非常简单。

+0

即使使用有效的日期字段,它总是会重新调整flase。 – user569125 2011-05-24 13:23:10

0

详细的一个,我用几年前...

<script language = "Javascript"> 
    var dtCh= "/"; 
    var minYear=1900; 
    var maxYear=2100; 

    var isInteger = function(s){ 
    var i; 
     for (i = 0; i < s.length; i++){ 
      var c = s.charAt(i); 
      if (((c < "0") || (c > "9"))) return false; 
     }  
     return true; 
    } 

    var stripCharsInBag = function(s, bag){ 
    var i; 
     var returnString = ""; 
     for (i = 0; i < s.length; i++){ 
      var c = s.charAt(i); 
      if (bag.indexOf(c) == -1) returnString += c; 
     } 
     return returnString; 
    } 

    var daysInFebruary = function(year){ 
     return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28); 
    } 

    var DaysArray = function(n) { 
    for (var i = 1; i <= n; i++) { 
     this[i] = 31 
     if (i==4 || i==6 || i==9 || i==11) {this[i] = 30} 
     if (i==2) {this[i] = 29} 
    } 
    return this 
    } 

    var isDate = function(dtStr){ 
    var daysInMonth = DaysArray(12) 
    var pos1=dtStr.indexOf(dtCh) 
    var pos2=dtStr.indexOf(dtCh,pos1+1) 
    var strMonth=dtStr.substring(0,pos1) 
    var strDay=dtStr.substring(pos1+1,pos2) 
    var strYear=dtStr.substring(pos2+1) 
    strYr=strYear 
    if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1) 
    if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1) 
    for (var i = 1; i <= 3; i++) { 
     if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1) 
    } 
    month=parseInt(strMonth) 
    day=parseInt(strDay) 
    year=parseInt(strYr) 
    if (pos1==-1 || pos2==-1){ 
     alert("The date format should be : mm/dd/yyyy") 
     return false 
    } 
    if (strMonth.length<1 || month<1 || month>12){ 
     alert("Please enter a valid month") 
     return false 
    } 
    if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){ 
     alert("Please enter a valid day") 
     return false 
    } 
    if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){ 
     alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear) 
     return false 
    } 
    if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){ 
     alert("Please enter a valid date") 
     return false 
    } 
    return true 
    } 

    var ValidateForm = function(){ 
    var dt=document.frmSample.txtDate 
    if (isDate(dt.value)==false){ 
     dt.focus() 
     return false 
    } 
     return true 
    } 

</script> 

及表演一些HTML的:

<form method="get" onSubmit="return ValidateForm()"> 
    <p>Enter a Date <b>(mm/dd/yyyy)</b>: <input type="text" name="txtDate" maxlength="10" size="15"></p> 
    <p><input type="submit" value="Submit"></p> 
</form> 
+0

忘了添加'','','','<body>'标签,那么它将是一个完整的页面。准备运行。 – <span class="text-secondary"> <small> <span>2011-05-24 12:05:55</span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">你一定是在开玩笑吧!日期验证可以用几行完成。将字符串转换为日期,测试日期对象的任何两个部分是否与日期字符串的任何两个部分(比如日期和月份)匹配。如果他们这样做,这是一个有效的日期。如果不是,那不是。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/257182/">RobG</a></span> <span>2011-05-24 12:41:10</span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">我需要验证格式为yyyy-mm-dd格式。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/569125/">user569125</a></span> <span>2011-05-24 14:36:50</span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">-2<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>您可以使用JavaScript或使用范围验证。</p> <p><a href="http://willmtz.blogspot.com/2011/10/date-validation-javascript-vs-code.html" rel="nofollow">Check out this link for an example of both techniques</a></p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/8041111">来源</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2011-11-07 18:50:51</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1034270/">JamesL</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> <!-- comments --> <div class="comments"> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+1</span></div> <div class="col-lg-11"> <p class="commenttext">欢迎来到Stack Overflow!虽然这可能在理论上回答这个问题,[这将是更可取的](http://meta.stackexchange.com/q/8259)在这里包括答案的重要部分,并提供供参考的链接。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/419/">Kev</a></span> <span>2011-11-07 20:10:20</span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">相关问题</div> <ul class="relative_list"> <li> 1. <a href="http://www.uwenku.com/question/p-sotvdmqh-hh.html" target="_blank" title="使用javascript验证日期"> 使用javascript验证日期 </a> </li> <li> 2. <a href="http://www.uwenku.com/question/p-vzyeticv-bhb.html" target="_blank" title="使用javascript验证日期?"> 使用javascript验证日期? </a> </li> <li> 3. <a href="http://www.uwenku.com/question/p-bkhbnvvt-bq.html" target="_blank" title="在JavaScript中使用.js文件进行日期验证"> 在JavaScript中使用.js文件进行日期验证 </a> </li> <li> 4. <a href="http://www.uwenku.com/question/p-yaiehlpp-pn.html" target="_blank" title="使用JavaScript进行客户端日期验证"> 使用JavaScript进行客户端日期验证 </a> </li> <li> 5. <a href="http://www.uwenku.com/question/p-oadeoyak-rk.html" target="_blank" title="使用ASP.NET验证器进行日期验证"> 使用ASP.NET验证器进行日期验证 </a> </li> <li> 6. <a href="http://www.uwenku.com/question/p-nocykurc-ho.html" target="_blank" title="使用验证控件对日期进行验证?在Asp.net中?"> 使用验证控件对日期进行验证?在Asp.net中? </a> </li> <li> 7. <a href="http://www.uwenku.com/question/p-qiblhngr-zc.html" target="_blank" title="使用ASP.NET验证器进行日期验证"> 使用ASP.NET验证器进行日期验证 </a> </li> <li> 8. <a href="http://www.uwenku.com/question/p-xivfxlcq-bac.html" target="_blank" title="使用jquery进行日期验证,防止输入yeterdays日期。"> 使用jquery进行日期验证,防止输入yeterdays日期。 </a> </li> <li> 9. <a href="http://www.uwenku.com/question/p-knpqjffr-q.html" target="_blank" title="使用JavaScript进行验证"> 使用JavaScript进行验证 </a> </li> <li> 10. <a href="http://www.uwenku.com/question/p-guhtxerc-eq.html" target="_blank" title="javascript日期验证"> javascript日期验证 </a> </li> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4606349252"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <li> 11. <a href="http://www.uwenku.com/question/p-sybfzodh-w.html" target="_blank" title="日期验证JavaScript"> 日期验证JavaScript </a> </li> <li> 12. <a href="http://www.uwenku.com/question/p-ocoescae-bdw.html" target="_blank" title="Javascript日期验证"> Javascript日期验证 </a> </li> <li> 13. <a href="http://www.uwenku.com/question/p-zqtjbhot-bhh.html" target="_blank" title="javascript日期验证"> javascript日期验证 </a> </li> <li> 14. <a href="http://www.uwenku.com/question/p-hbkdwwfu-wg.html" target="_blank" title="JavaScript验证日期"> JavaScript验证日期 </a> </li> <li> 15. <a href="http://www.uwenku.com/question/p-vsllqotc-xg.html" target="_blank" title="javascript日期验证"> javascript日期验证 </a> </li> <li> 16. <a href="http://www.uwenku.com/question/p-kujpfhhd-bge.html" target="_blank" title="JavaScript - 验证日期"> JavaScript - 验证日期 </a> </li> <li> 17. <a href="http://www.uwenku.com/question/p-hoikrqxh-ku.html" target="_blank" title="如何使用javascript验证日期"> 如何使用javascript验证日期 </a> </li> <li> 18. <a href="http://www.uwenku.com/question/p-kradsnps-bmk.html" target="_blank" title="JS进行验证日期范围"> JS进行验证日期范围 </a> </li> <li> 19. <a href="http://www.uwenku.com/question/p-tvjybpfz-kd.html" target="_blank" title="在Visual Basic中进行日期验证"> 在Visual Basic中进行日期验证 </a> </li> <li> 20. <a href="http://www.uwenku.com/question/p-mvbqfjlx-bbq.html" target="_blank" title="使用jQuery验证的日期验证"> 使用jQuery验证的日期验证 </a> </li> <li> 21. <a href="http://www.uwenku.com/question/p-aerfkmzf-uv.html" target="_blank" title="Javascript - 日期范围验证"> Javascript - 日期范围验证 </a> </li> <li> 22. <a href="http://www.uwenku.com/question/p-yizjiilm-wb.html" target="_blank" title="JavaScript简单日期验证"> JavaScript简单日期验证 </a> </li> <li> 23. <a href="http://www.uwenku.com/question/p-wzmlwcav-yp.html" target="_blank" title="JavaScript的日期验证"> JavaScript的日期验证 </a> </li> <li> 24. <a href="http://www.uwenku.com/question/p-uaqarfgc-bey.html" target="_blank" title="在javascript中验证日期"> 在javascript中验证日期 </a> </li> <li> 25. <a href="http://www.uwenku.com/question/p-hbiklpdz-yd.html" target="_blank" title="javascript日期验证错误"> javascript日期验证错误 </a> </li> <li> 26. <a href="http://www.uwenku.com/question/p-vvufjwpj-bbw.html" target="_blank" title="Javascript日期验证的Asp.net"> Javascript日期验证的Asp.net </a> </li> <li> 27. <a href="http://www.uwenku.com/question/p-knbgdwrx-bna.html" target="_blank" title="javascript日期验证检查"> javascript日期验证检查 </a> </li> <li> 28. <a href="http://www.uwenku.com/question/p-mwacvoiv-dn.html" target="_blank" title="javascript验证日期过去"> javascript验证日期过去 </a> </li> <li> 29. <a href="http://www.uwenku.com/question/p-yegaeyge-bhk.html" target="_blank" title="使用开关命令进行日期验证不起作用"> 使用开关命令进行日期验证不起作用 </a> </li> <li> 30. <a href="http://www.uwenku.com/question/p-zqbkdqim-ec.html" target="_blank" title="使用日期对象的javascript日期验证"> 使用日期对象的javascript日期验证 </a> </li> </ul> </div> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1575177025"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img.uwenku.com/uwenku/script/side.js?t=1644592048176"></script> <script type="text/javascript" src="http://img.uwenku.com/uwenku/plugin/highlight/highlight.pack.js"></script> <link href="http://img.uwenku.com/uwenku/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 每日一句 </div> <div class="panel-body m-b-sm m-t-sm clearfix"> 每一个你不满意的现在,都有一个你没有努力的曾经。 </div> </div> <div class="row"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="5415218910" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 最新问题 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://www.uwenku.com/question/p-zxdtlnal-bkk.html" target="_blank" title="Python的酒杯OOP - 呼叫胸部和大酒杯类功能不断重印卡值"> Python的酒杯OOP - 呼叫胸部和大酒杯类功能不断重印卡值 </a> </li> <li class="side_article_list_item"> 2. <a href="http://www.uwenku.com/question/p-pmpobjub-bkb.html" target="_blank" title="为什么JSDOM更改html结构?"> 为什么JSDOM更改html结构? </a> </li> <li class="side_article_list_item"> 3. <a href="http://www.uwenku.com/question/p-rnnhflhs-zv.html" target="_blank" title="为什么我的RecyclerView.ViewHolder的onClick方法有时不被调用?"> 为什么我的RecyclerView.ViewHolder的onClick方法有时不被调用? </a> </li> <li class="side_article_list_item"> 4. <a href="http://www.uwenku.com/question/p-kdcrwjfq-bab.html" target="_blank" title="不能产生子进程"> 不能产生子进程 </a> </li> <li class="side_article_list_item"> 5. <a href="http://www.uwenku.com/question/p-dexsrppw-bak.html" target="_blank" title="将数组映射到Typescript/Angular中的对象"> 将数组映射到Typescript/Angular中的对象 </a> </li> <li class="side_article_list_item"> 6. <a href="http://www.uwenku.com/question/p-qpdteebq-bch.html" target="_blank" title="如何在Xcode中修复以下错误:密钥命令必须都有标题,密钥和选择器?"> 如何在Xcode中修复以下错误:密钥命令必须都有标题,密钥和选择器? </a> </li> <li class="side_article_list_item"> 7. <a href="http://www.uwenku.com/question/p-bpbxuzsk-bca.html" target="_blank" title="Terraform SQL创建从可变"> Terraform SQL创建从可变 </a> </li> <li class="side_article_list_item"> 8. <a href="http://www.uwenku.com/question/p-cmgwzwbr-bbu.html" target="_blank" title="Github Windows客户端将cpp文件检测为二进制文件"> Github Windows客户端将cpp文件检测为二进制文件 </a> </li> <li class="side_article_list_item"> 9. <a href="http://www.uwenku.com/question/p-hyfhqgkl-bbo.html" target="_blank" title="如何在PowerShell中删除文件之前检查程序是否正在运行?"> 如何在PowerShell中删除文件之前检查程序是否正在运行? </a> </li> <li class="side_article_list_item"> 10. <a href="http://www.uwenku.com/question/p-opydsjnu-bbd.html" target="_blank" title="如何在angularjs中注入这个依赖项?"> 如何在angularjs中注入这个依赖项? </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 相关问题</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://www.uwenku.com/question/p-sotvdmqh-hh.html" target="_blank" title="使用javascript验证日期"> 使用javascript验证日期 </a> </li> <li class="side_article_list_item"> 2. <a href="http://www.uwenku.com/question/p-vzyeticv-bhb.html" target="_blank" title="使用javascript验证日期?"> 使用javascript验证日期? </a> </li> <li class="side_article_list_item"> 3. <a href="http://www.uwenku.com/question/p-bkhbnvvt-bq.html" target="_blank" title="在JavaScript中使用.js文件进行日期验证"> 在JavaScript中使用.js文件进行日期验证 </a> </li> <li class="side_article_list_item"> 4. <a href="http://www.uwenku.com/question/p-yaiehlpp-pn.html" target="_blank" title="使用JavaScript进行客户端日期验证"> 使用JavaScript进行客户端日期验证 </a> </li> <li class="side_article_list_item"> 5. <a href="http://www.uwenku.com/question/p-oadeoyak-rk.html" target="_blank" title="使用ASP.NET验证器进行日期验证"> 使用ASP.NET验证器进行日期验证 </a> </li> <li class="side_article_list_item"> 6. <a href="http://www.uwenku.com/question/p-nocykurc-ho.html" target="_blank" title="使用验证控件对日期进行验证?在Asp.net中?"> 使用验证控件对日期进行验证?在Asp.net中? </a> </li> <li class="side_article_list_item"> 7. <a href="http://www.uwenku.com/question/p-qiblhngr-zc.html" target="_blank" title="使用ASP.NET验证器进行日期验证"> 使用ASP.NET验证器进行日期验证 </a> </li> <li class="side_article_list_item"> 8. <a href="http://www.uwenku.com/question/p-xivfxlcq-bac.html" target="_blank" title="使用jquery进行日期验证,防止输入yeterdays日期。"> 使用jquery进行日期验证,防止输入yeterdays日期。 </a> </li> <li class="side_article_list_item"> 9. <a href="http://www.uwenku.com/question/p-knpqjffr-q.html" target="_blank" title="使用JavaScript进行验证"> 使用JavaScript进行验证 </a> </li> <li class="side_article_list_item"> 10. <a href="http://www.uwenku.com/question/p-guhtxerc-eq.html" target="_blank" title="javascript日期验证"> javascript日期验证 </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://www.uwenku.com/contact">联系我们</a></li> <li>© 2020 UWENKU.COM</li> <li><a target="_blank" href="https://beian.miit.gov.cn/">沪ICP备13005482号-4</a></li> <li><script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1280101193&web_id=1280101193"></script></li> <li><a href="http://www.uwenku.com/" target="_blank" title="优文库">简体中文</a></li> <li><a href="http://hk.uwenku.com/" target="_blank" title="優文庫">繁體中文</a></li> <li><a href="http://ru.uwenku.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.uwenku.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.uwenku.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.uwenku.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.uwenku.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.uwenku.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.uwenku.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.uwenku.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.uwenku.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.uwenku.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.uwenku.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f78a970f17b19a79fc477a3378096f29"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>