.net c# 验证输入时间格式的有效性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net c# 验证输入时间格式的有效性相关的知识,希望对你有一定的参考价值。

通过Textbox获取用户输入的时间 字符串 (2011-4-2 年/月/日)。对该字符串的有效性的验证,分两步:   1.通过正则表达式对该字符串是否为XXXX-XX-XX的格式进行判断。   2.对数据的有效性进行判断。如 2011-13-40日这样的数据是不合理的,应报错提示。我个人感觉 如果可以将该时间存到一个数组里(year=a[0],month=a[1],day=a[2]),然后分别对年 月 日去读取并做判断,那么就能够解决了。问题在 要如何将该字符串转换成数组呢?或者你若有别的更加简便的方法也可以告诉我一下。我很急,望能指点一二,非常感谢!!!

参考技术A DateTime.trypares(要验证的东西,out bool参数)
如果BOOL为TRUE 则验证通过.FLASE 验证不通过. 手码.应该写错了- -..
这个函数就是用来验证各种尝试转型的撒
参考技术B Winform还是Webform,

如果Webform要做前台(JS)还是后台校验?

后台的话就用DateTime.trypares很简单了,JS的正则表达式也很简单。

要是像你说的存数组(year=a[0],month=a[1],day=a[2]),你要读取字符串,因为你也不知道他用的是什么分隔符,读取字符串每个字符,判断是不是数据,当地一个不是数字的字符出现时就把前面的存到数组0里,然后继续,以此类推。
参考技术C string strDate = "2012-07-28";
string[] strs = strDate.Split(new char[]'-');
参考技术D ^((((1[6-9]|[2-9]d)d2)-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d2)-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d2)-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$
时间格式(YYYY-MM-DD)基本上把闰年和2月等的情况都考虑进去了
第5个回答  2012-07-30 转换成datetime,成功有效,失败无效

带有 jquery datepicker 错误的 jquery 验证插件(请输入有效日期)

【中文标题】带有 jquery datepicker 错误的 jquery 验证插件(请输入有效日期)【英文标题】:jquery validation plugin with jquery datepicker error(Please enter a valid date) 【发布时间】:2020-04-16 14:46:59 【问题描述】:

我正在使用jquery 验证插件进行表单验证。我正在验证日期。但我收到了类似

的错误

请输入有效日期

如果我更改 Jquery 日期选择器格式。我不知道它来自哪里。

我正在使用jquery ui date picker

 $('.date').datepicker(
        dateFormat: "dd-mm-yy",
        changeMonth:true,
        changeYear:true
 );

表格

<form method="post" id="policiesform" action=" url('createpoli') " enctype="multipart/form-data">
 <div class="col-lg-4 col-md-6 col-sm-12">
      <div class="form-group">
      <div class="row text-center">
      <div class="col-lg-4 col-md-6 col-sm-6">
      Start Date

      </div>
      <div class="col-lg-8 col-md-6 col-sm-6">
      <input type="text"  placeholder="Start Date" class="form-control date" name="startdte" readonly>

      </div>
      </div>

        </div>

      </div>
      <div class="col-lg-4 col-md-6 col-sm-12">
      <div class="form-group">
      <div class="row text-center">
      <div class="col-lg-4 col-md-6 col-sm-6">
         End Date
      </div>
      <div class="col-lg-8 col-md-6 col-sm-6">
      <input  placeholder="End Date" class="form-control date" name="enddte" readonly>
      </div>
      </div>

        </div> 
   </div>
</form>

验证

$('#policiesform').validate(
        rules: 
            startdte: 
                required:true,
            ,
            enddte: 
                required:true,
            ,


        ,
        messages: 
            startdte: 
                required:"Start Date is Required",

            ,
            enddte: 
                required:"End Date is Required",

            ,  

        
    );

【问题讨论】:

看看***.com/questions/41435873/… 你用的时刻js吗? @Maraboc 不,我正在使用简单的 jquery 验证插件 @PrabhjotSinghKainth 是的,你是对的,我也遇到了同样的问题 【参考方案1】:

如果您已经下载了 jquery 验证插件,那么您必须在jquery.validate.min.js 中进行更改,有关更多信息,您可以在此处找到Where trigger the "Please enter a valid date." in jquery.validate.js

【讨论】:

【参考方案2】:

尝试使用开始日期、结束日期 id 而不是类

开始日期

$('#start-date').datepicker(
        dateFormat: "dd-mm-yy",
        changeMonth:true,
        changeYear:true
 ).on('change', function() 
        $(this).valid();  // triggers the validation test
        // '$(this)' refers to '$(".date")'
 );

结束日期

$('#end-date').datepicker(
            dateFormat: "dd-mm-yy",
            changeMonth:true,
            changeYear:true
     ).on('change', function() 
            $(this).valid();  // triggers the validation test
            // '$(this)' refers to '$(".date")'
     );

【讨论】:

请输入有效日期 嗨 matheen ulla,创建单独的 startDate、endDate id 而不是类

以上是关于.net c# 验证输入时间格式的有效性的主要内容,如果未能解决你的问题,请参考以下文章

C# 各种输入格式验证#各种输入格式验证

如何在 .Net / C# 中将日期转换为 HTTP 格式的日期

验证日期输入格式

用于验证 .NET 时间格式的正则表达式

使用不带特殊字符 + 验证格式的日期输入创建一个 from

输入格式验证