【问题标题】:How to validate textbox using regular expression validator in ASP.NET如何在 ASP.NET 中使用正则表达式验证器验证文本框
【发布时间】:2011-06-28 23:13:21
【问题描述】:

嗨 我想使用正则表达式验证器在 ASP.NET 中验证我的文本框。

我的文本框应该只包含数字和特殊字符。

我可以使用什么验证表达式?

请帮帮我。

【问题讨论】:

  • 嗨,到目前为止,您的 Web 表单看起来如何?
  • 事情是我的文本框将采用电话号码所以 Phno 包含很少的 spl 字符 ..like..() 和 - 连同数字,所以我只需要数字和 Spl 字符我的文本框必须使用请尝试帮助我..

标签: c# regex asp.net-ajax


【解决方案1】:

只有数字可以输入该文本框

我们可以为此使用正则表达式验证器: 在验证表达式属性中保留 ^\d+$.

<asp:TextBox ID="TextBox1" runat="server" 
    Style="z-index: 100; left: 259px; position: absolute; top: 283px" 
    ValidationGroup="check"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
    ControlToValidate="TextBox1" ErrorMessage="Please Enter Only Numbers" 
    Style="z-index: 101; left: 424px; position: absolute; top: 285px" 
    ValidationExpression="^\d+$" ValidationGroup="check">
</asp:RegularExpressionValidator>

【讨论】:

  • 只有数字特殊字符。
  • 我不会使用“+”号,因为 santhosh 没有指定应该插入一个值
  • 事情是我的文本框将采用电话号码所以 Phno 包含很少的 spl 字符 ..like..() 和 - 连同数字,所以我只需要数字和 Spl 字符我的文本框必须使用请尝试帮助我..
  • regular-expressions.info 从那里开始,花一两个小时弄清楚它们是如何工作的。从长远来看,这将为您节省大量时间。
  • 除非您确定您的受众是 100% 本地用户,否则您应该允许使用国际号码,例如 +46-8-1234 5678,并且如果您要实际使用电话号码(您为什么还要问?哦,是的,对,“我只是听从我的命令”)也许您还应该问一下客户在哪个时区。
【解决方案2】:

有效电话号码(如 (999) 999-9999)的表达式为:

^[\d\s\(\)\-]+$

这意味着它出现了 0-9 位数字 () 括号中的减号和空格。它们都可能发生一次或多次,因此 (()3-4 4) 也是正确的。但是由于您希望 spl 字符出现在任何地方,这将是合适的。

也许使用 System.ComponentModel.DataAnnotations 命名空间中的属性验证。该属性如下所示:

[RegularExpression(@"^[\d\s\(\)\-]+$")]
public string NumbersAndSpecialChars { get; set; }

使用表达式的 Asp-Control 看起来像这样(就像 Rob 回答的那样):

<asp:TextBox ID="TextBox1" runat="server" 
Style="z-index: 100; left: 259px; position: absolute; top: 283px" 
ValidationGroup="check"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="TextBox1" ErrorMessage="You must enter a phone number in the form of (999) 999-9999." 
Style="z-index: 101; left: 424px; position: absolute; top: 285px" 
ValidationExpression="^[\d\s\(\)\-]+$" ValidationGroup="check"/>

【讨论】:

  • 它不起作用,请尝试为调节器表达式控件提供验证表达式
  • 您不能将表达式复制并粘贴到 Rob 的答案中吗?你只需要以不同的方式转义表达式,因为它的 asp 不是 c#
  • 这 > (999) 999-9999 是一个有效的号码吗?
  • 是的,我只想要这样,但我的 spl 字符可能会放在该数字中的任何位置
  • 如果您只需要接受九位电话号码,其中可选的特殊字符可能出现在第一位数字之前、第三位数字之后和第六位数字之后,那么最允许的正则表达式将是 [^\ d]*\d{3}[^\d]*\d{3}[^\d]*\d{4}。所有这些关心的是输入中有10位数字。
【解决方案3】:

试试这个模式[-+\d()]+。我认为+ 有时也包含在电话号码中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多