3

I see a lot of solutions to validate a phone number by Regex... But I want some characters in my phone number such as +31(0)12 for example.

If you have string with the value +31(0)12-1234567. This is a correct notation of a phone number. How could you validate by using Regex?

I have tried this:

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

What do I wrong?

Other examples are: +31(0)6-12345678 or +31(0)123-123456

user1531040
  • 2,143
  • 6
  • 28
  • 48

2 Answers2

8

I had this issue too and found no duplicate here on SO to Regex a number with a plus + sign being a phone number.

Finally I formatted this Regex myself:

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

See it here on regex 101

This will match:

+nnnnnnnnnn
+nnn-nnn-nn
nnnnnnnnnnn
nnnn-nnnn-n
(nnn)nnnnnn
+(nnn)nnnnn
Koby Douek
  • 16,156
  • 19
  • 74
  • 103
0

should it be something like this: +\d{1,3}(0)\d*-\d*

your example isn't escaping the brackets around the zero and country codes can be 1 to 3 digits long.

Craig Foster
  • 109
  • 1
  • 7