验证文本框只允许数字,没有特殊字符或字母[重复]

Posted

技术标签:

【中文标题】验证文本框只允许数字,没有特殊字符或字母[重复]【英文标题】:asp.net validation to make sure textbox has integer values 【发布时间】:2021-06-21 17:58:39 【问题描述】:

我重新编辑了我之前的问题,但没有看到我的新问题被发布,所以我重新发布。我很抱歉。

我对编程非常陌生,迫切需要帮助。我正在使用带有 C# (Visual Studio 2017) 的 Asp.net。我需要创建一个仅允许 4 位数字、空格键和退格键的文本框。不允许使用特殊字符或字母。范围必须在 1899 年到当前年份之间。并且它需要验证在文本框中输入的年份是否在 1899-2021 之间。并且当在文本框中输入错误的年份时,我需要一条弹出消息说“无效年份”。我尝试了很多方法,但没有任何效果。有没有人有我可以使用的代码,请清楚我需要在哪里插入它们。以下是我尝试过的一组示例代码。但是,对于这个,我需要代码来允许空格键并且只允许 4 位数字。我还需要知道我应该在哪里插入这些代码。这段代码的问题是它有一个我不需要的向上向下按钮。希望这是有道理的。谢谢!

<script type = "text/javascript">

  function isValidYear() 

        var year = document.getElementById('tbxYear').value;

      
        if (year > 2021 || year < 1899) 

            alert("Range 1899 - 2021");

            return false;

        

        return true;

     

</script>
                          

<asp:TextBox ID="tbxYear" runat="server" 
ClientIDMode="Static" type="number" min="1899" 
max="2021" step="1" onchange="isValidYear()" onpaste = "return false;" 
BorderColor="Black" CausesValidation="True" CssClass="auto-style8" 
Font-Names="Arial" Height="25px" MaxLength="4" ValidateRequestMode="Enabled" 
ValidationGroup="check" Width="147px"> 
</asp:TextBox>&nbsp;
<span class="auto-style16">
<span class="auto-style15">
<b><span style="font-size: small; font-family: Arial; color: #FF0000">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

【问题讨论】:

欢迎来到 ***!您使用的是 ASP.NET Framework 还是 ASP.NET Core?正则表达式可以解决问题,但您需要限制字符。一个简单的辅助方法应该可以工作。我想我有一个可以帮助您解决问题。 您可以使用RegularExpressionValidator,这是一个不错的选择。 \d4 可能是唯一的解决方案。 【参考方案1】:

你可以使用正则表达式来检查它

var reg = /^\d+$/;

【讨论】:

是否将值限制为 4 位? 你可以使用 reg /^SW\d4$/ 在哪里以及如何使用它? 请检查以下代码:当满足此条件时,调用 z.length === 4 检查您的年份长度if(!/^[0-9]+$/.test(z)) alert("Please only enter numeric characters only for your Age! (Allowed input:0-9)")

以上是关于验证文本框只允许数字,没有特殊字符或字母[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何验证文本框只允许 c#.net 中的第一个字符大写字母?

格式化c#文本框只允许数字字符[重复]

R REGEX匹配-至少1个小写字母,1个数字,并且没有8个长度的特殊字符[重复]

如何防止用户在文本框中输入特殊字符[重复]

文本框只允许输入数字.net/javascript

WinForm笔记一:文本框只允许输入数字