【问题标题】:Sweden Phone Number Regular Expression瑞典电话号码正则表达式
【发布时间】:2013-12-19 09:52:01
【问题描述】:

您好,我正在使用以下正则表达式来验证瑞典号码

^(([+]46)((70[{0-9}])|(72[{0-9})])|(73[{0-9}])|(76[{0-9}]))([\d]{6}))$

我希望我的号码采用以下格式 +46 70 5689 123 或 +46705689123

请帮我做这件事。

【问题讨论】:

  • 究竟是什么问题?请注意,[{0-9}] 将匹配 {} 以及数字。
  • 以上表达式不允许空格 我要允许单个空格 +46space70space1234space321
  • 在组之间添加\s?\s*,如果您想允许无限数量或空格。
  • 格式是否必须完全是这两个格式,还是允许使用+46 705689123 之类的格式?即空格是独立可选的还是全部或没有?
  • 我想允许一个 07[0|2|3|6]1234321

标签: c# regex


【解决方案1】:

正则表达式中缺少空格 (\s*):

^([+]46)\s*(7[0236])\s*(\d{4})\s*(\d{3})$

说明

演示

https://www.debuggex.com/r/vG3FFsIeqa82QQRS

讨论

我已将 70[{0-9}] 这样的部分替换为更具可读性的部分:7[0236]

【讨论】:

    【解决方案2】:

    为什么有这么多括号?

    ^\+46 *7[0236] *\d{4} *\d{3}$
    

    应该这样做。

    【讨论】:

      【解决方案3】:

      为了获得完整的答案,我将添加到此线程中。 Manoj,您在评论中写道,您还希望允许以 0 开头的数字,Stephan 的答案(尽管很棒)没有涵盖。

      你想用

      ^(([+]46)\s*(7)|07)[02369]\s*(\d{4})\s*(\d{3})$
      

      允许:

      • +46 7
      • +467
      • 07

      后跟0/2/3/6/9,(一个可能的空格),4位,(一个可能的空格),3位

      Debuggex Demo

      【讨论】:

      • 第一部分处理不同的起始变量。 +46, 07 或者如果您还想要 00467。只需将 ([+]46)\s*(7)|07) 更改为 ([+]46)\s*(7)|07|00467)表示“或”并表示另一个可能的变体。希望这对你有帮助!
      【解决方案4】:

      ^((((0{2}?)|(\+){1})46)|0)7[\d]{8}

      将与 0046 708 777 666 合作

      try it out

      【讨论】:

        【解决方案5】:

        /^07(0|2|3|6|9)\d{7}$/g

        这适用于以以下首字母开头的本地号码:070、072、073、076、079 移动电话网络 示例:076xxxxxxx x 将是数字

        【讨论】:

          猜你喜欢
          • 2013-10-30
          • 2014-05-25
          • 2017-09-23
          • 2014-02-15
          • 2016-02-02
          • 2011-12-14
          • 2013-05-26
          • 1970-01-01
          相关资源
          最近更新 更多