【问题标题】:Regular expression for validating UAE numbers验证阿联酋数字的正则表达式
【发布时间】:2014-07-09 06:38:17
【问题描述】:

我需要验证阿联酋手机号码的正则表达式,例如

+9710501234566 或

+971 (050) (123 4566)

目前我正在使用

^(\+971[\s]{0,1}[\-]{0,1}[\s]{0,1}|[\s]{0,1}0)(5[056]{1})[\s]{0,1}[\-]{0,1}[\s]{0,1}[1-9]{1}[0-9]{6}$

你能帮帮我吗?我不太擅长正则表达式...

【问题讨论】:

  • 除了样本中的 2 之外,还有其他可能的方法来写数字吗?
  • 不,可能只有上述两种格式

标签: asp.net validation validation-controls


【解决方案1】:

试试这个:

Regex regex = new Regex(@"^\+971(\d{10}|\s\(\d{3}\)\s\(\d{3}\s\d{4}\))$");

基本上,您按原样检查 +971,然后检查 10 位数字,或者模式空格 - 左括号 - 3 位数字 - 右括号 - 空格 - 左括号 - 3 位数字 - 空格 - 4 位数字 - 右括号。

请注意,由于您提到示例字符串是唯一可能的 2 种模式,因此我在正则表达式中使用了文字字符 '+'、'(' 和 ')'。

如果您想扩展它以允许不带空格的括号,只需将 \s 替换为 \s? 以使空格可选。

【讨论】:

    【解决方案2】:

    +971 (050) (123 4566) 格式无效 应该是 +971 (50) (123 4566)

    这将只允许以数字开头 50(阿联酋) 52(杜) 55(杜) 56(阿联酋)

    /^5(0|2|5|6)\d{7}$/;
    

    以 5 开头,然后匹配 0、2、5、6 和 7 位数字 下面也应该从 9715 格式开始

    /^+9715(0|2|5|6)\d{7}$/;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2017-12-31
      • 2013-08-04
      相关资源
      最近更新 更多