【问题标题】:Regex to validate phone Number for repeating digits正则表达式验证重复数字的电话号码
【发布时间】:2015-03-21 21:29:52
【问题描述】:

我正在尝试编写一个正则表达式来验证电话号码。那些有111.111.1111 格式的应该会成功。其他的,比如789-123-1234,应该会失败。

我想出了^(\d)(\1+$)\d*$ 正则表达式,但它只有助于验证1111111111 而不是111.111.1111。谁能帮我改进我的正则表达式?

【问题讨论】:

  • 只有一个解释 - 数字必须重复? 111.222.3333 格式无效?

标签: regex


【解决方案1】:

您可以使用^\d{3}\.\d{3}\.\d{4}$ 来验证包含从 0 到 9 的数字。如果您打算只匹配一位数字(例如“111.111.1111”、“222.222.2222”),请使用^([0-9])\1{2}\.\1{3}\.\1{4}$

【讨论】:

    【解决方案2】:

    你快到了:捕获第一个数字并检查重复,例如^(\d){2}\.\1{3}\.\1{4}$

    【讨论】:

    • 我错过了 ^(\d)\1[2}\.\1{3}\.\1{4}$ 这确实验证了 111.111.1111 但不是 1111111111
    • 困惑...如果你想验证带或不带点的数字,你可以通过放置一个'?'来使模式中的文字点成为可选的。就在它后面:^(\d){2}\.?\1{3}\.?\1{4}$(顺便说一句,我的正则表达式字符串中有错字,现在更正。)
    【解决方案3】:

    匹配 (111) 111-1111

    ^\(([0-9])\1{2}\)\s\1{3}\-\1{4}$
    

    匹配 111.111.1111

    ^([0-9])\1{2}\.\1{3}\.\1{4}$
    

    匹配 111-111-1111

    ^([0-9])\1{2}\-\1{3}\-\1{4}$
    

    【讨论】:

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