如何使用加号(+)和正则表达式的“(0)”验证电话号码?

时间:2017-08-16 10:08:51

标签: c# regex

我看到许多解决方案来验证Regex的电话号码......但我想在我的电话号码中加入一些字符,例如+31(0)12

如果您的字符串值为+31(0)12-1234567。这是电话号码的正确表示法。你怎么能用Regex验证?

我试过这个:

Regex phonePattern = new Regex(@"\+\d{3}?(\0)\d*\-\d*"); 

我错了什么?

其他例子如下: +31(0)6-12345678+31(0)123-123456

2 个答案:

答案 0 :(得分:7)

我也遇到过这个问题,并且发现此处没有重复,因为正则表达式是一个加号为+的电话号码。

最后我自己格式化了这个正则表达式:

Regex phonePattern = new Regex(@"\s*(?:\+?(\d{1,3}))?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*");

See it here on regex 101

这将匹配:

+nnnnnnnnnn
+nnn-nnn-nn
nnnnnnnnnnn
nnnn-nnnn-n
(nnn)nnnnnn
+(nnn)nnnnn

答案 1 :(得分:0)

应该是这样的:+ \ d {1,3}(0)\ d * - \ d *

您的示例没有转义零周围的括号,国家/地区代码长度可以是1到3位数。