【问题标题】:regular expression for a text box that is not required, but needs to validate if entered文本框的正则表达式,不是必需的,但需要验证是否输入
【发布时间】:2011-10-28 04:36:40
【问题描述】:

在我的表单上,我有一个电话号码文本框。我有一个相当通用的正则表达式,几乎可以接受本地或国际电话号码的所有变体。表达式如下:

^((+)?[1-9]{1,2})?([-\s.])?(((\d{1,4}))|\d{1,4} )(([-\s.])?[0-9]{1,12}){1,2}(x?[0-9]{1,})?$

问题是,该字段不是必需的,但如果他们决定输入数字,则需要进行验证。有没有办法做到这一点?

【问题讨论】:

  • 忠告,正则表达式电话号码是个坏主意。它允许所有可能的“正确”电话号码的可能性有多大?它会停止像“(333)-333-3333 ext. 999”这样的输入吗?因为这是一个完全有效的数字,在任何想要阻止字母字符或句点的正则表达式中都会失败。除非您的应用存储电话号码以便稍后由机器自动拨号,否则您实际上不需要要求用户以机器可读的格式输入电话号码。
  • @Graham 我没有设计应用程序,我只是一个程序员。我们的客户必须在数据库中注册至少 1 个电话号码。在创建帐户之前输入号码,并且在批准帐户之前所有信息都由人工审核。

标签: asp.net regex


【解决方案1】:

包围整个正则表达式,除了^$ 外加一个额外的( )?

^(((+)?[1-9]{1,2})?([-\s.])?(((\d{1,4}))|\d{1,4})(([-\s.])?[0-9]{1,12}){1,2}(x?[0-9]{1,})?)?$

【讨论】:

    【解决方案2】:

    我不做 ASP 编程,但你不能做一些类似这样的条件:

    if( textbox.value.length > 0 ) then validate
    

    所以它只验证用户是否输入了一些东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 2017-04-13
      • 2011-01-27
      • 1970-01-01
      相关资源
      最近更新 更多