用于验证阿联酋数字的正则表达式

时间:2014-07-09 06:38:18

标签: asp.net validation validation-controls

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

  

+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 个答案:

答案 0 :(得分:1)

试试这个:

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

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

请注意,既然你提到样本字符串是唯一可能的两种模式,我在我的正则表达式中使用了文字字符'+','('和')'。

如果你想扩展它以允许括号没有空格,只需用\s替换\s?以使空格可选。

答案 1 :(得分:1)

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

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

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

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

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