首页 > 解决方案 > 文本框验证以确保仅具有整数值

问题描述

示例文本框 大家好,我如何添加验证表达式以在我的文本框中只接受数字和空格?如上图示例。我尝试这种方式 ValidationExpression="[0-100' ']{100,}" 但不正确..

<asp:TextBox ID="txtCopied" runat="server" TextMode="MultiLine" 
Height="200px" Width="617px" />
                                                       
<asp:RegularExpressionValidator ID="rvDigits" runat="server" 
ControlToValidate="txtCopied" ErrorMessage="Enter numbers only till 100 
digit" ValidationGroup="valGroup" ForeColor="Red" ValidationExpression=" 
[0-100' ']{100,}"  />

标签: asp.netvb.netvalidation

解决方案


我尝试使用 ServerValidate 而不是 RegularExpressionValidator 并试图弄乱它。

<form id="form1" runat="server">
       <asp:TextBox ID="txtCopied" runat="server" TextMode="MultiLine" Height="200px" Width="617px" MaxLength="2000" />                                                                                                       
       <asp:Button ID="Button1" runat="server" Text="Button" />                                                     
       <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="txtCopied" OnServerValidate="TextValidate"
         ValidateEmptyText="True" SetFocusOnError="True"  ErrorMessage="Enter numbers only till 100 digit" Display="Dynamic" />
 </form>
Public Class WebForm1
   Inherits System.Web.UI.Page

   Protected Sub TextValidate(source As Object, args As ServerValidateEventArgs) Handles CustomValidator1.ServerValidate

      Dim strRegex As String = "\b(0{0,2}[1-9]|0?[1-9][0-9]|1[1-9][0-9]|100)\b"
      Dim re As New Regex(strRegex, RegexOptions.Multiline)
      Dim ss As String() = args.Value.Split(" ")

      For i = 0 To ss.Length - 1
         args.IsValid = re.IsMatch(ss(i))
      Next
   End Sub
End Class

推荐阅读