数字和斜线(日期)仅限文本框asp.net

时间:2018-04-02 08:04:49

标签: c# asp.net regex

我有gridview,其中包含姓名和日期。我还在gridview的标题上放置了一些文本框,可用于搜索。我希望我的文本框用于搜索日期以限制用户输入除数字和斜杠之外的其他字符。所以基本上,我想要一个只允许用户输入日期的文本框。它应该允许用户通过键入(01-12),月和日(01 / 13,12 / 30)或月,日,进行搜索和年度01/13/201812/30/2018)...

之前我在文本框中使用了TextMode: Date,但它要求用户完成全部mm/dd/yyyy格式,该格式限制用户仅使用月份或月份和日期进行搜索。我尝试了一些我在互联网上找到的javascripts,但它不符合我的要求。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

你可以使用非常宽容的Parse:

string s = "5/12";
DateTime d = DateTime.Parse(s);

// d will hold: 2018-12-05

当然,将它包装在try-catch中。

答案 1 :(得分:1)

请使用以下javascript来回答您的问题

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
        body
        {
          font-size: 9pt;
          font-family: Arial;
        }
    </style>
</head>
<body>
Enter Date:
  <input type="text" id="text1" onkeypress="return IsValidData(event);" 
 ondrop="return false;"
    onpaste="return false;" />
<span id="error" style="color: Red; display: none">* Invalid Character</span>
<script type="text/javascript">
    var specialKeys = new Array();
    specialKeys.push(8); //Backspace
    specialKeys.push(9); //Tab
    specialKeys.push(46); //Delete
    specialKeys.push(36); //Home
    specialKeys.push(35); //End
    specialKeys.push(37); //Left
    specialKeys.push(39); //Right
    function IsValidData(e) {
        var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;
        var ret = ((keyCode >= 48 && keyCode <= 57) || (keyCode == 43) || (keyCode == 47) || (specialKeys.indexOf(e.keyCode) != -1 && e.charCode != e.keyCode));
        document.getElementById("error").style.display = ret ? "none" : "inline";
        return ret;
    }
</script>

如果此POST回答您的问题,请检查绿色勾号。

答案 2 :(得分:0)

您可以使用asp:RegularExpressionValidator来验证TextBox Text媒体资源。

在下面的示例中,我使用了^\d{4}\/\d{2}\/\d{4}$正则表达式,它只允许带有斜杠的正数字。

<asp:TextBox ID="txt1" runat="server"/>
<asp:RegularExpressionValidator ID="myRegex" 
                                runat="server"     
                                ErrorMessage="Invalid characters." 
                                ControlToValidate="txt1"     
                                ValidationExpression="^\d{4}\/\d{2}\/\d{4}$" />