user1531040 user1531040 - 10 months ago 51
C# Question

How to validate phone number with a plus (+) sign and "(0)" by regex?

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

Answer Source

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
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download