HDev007
HDev007

Reputation: 325

Regex for UK phone number

I need to validate uk numbers

Below are sample type of number

01457 341235
0229  111111

+1213 3133143

Optional Plus should be allowed at first postion only

Using this regex but not working

^(?:\W*\d){11}\W*$

Upvotes: 4

Views: 13324

Answers (1)

user1919238
user1919238

Reputation:

An actual UK phone number will start with 0 or +44 (the latter being the UK country code), or possibly just 44, followed by nine or ten digits. A regex to capture that would look something like:

^(?:0|\+?44)(?:\d\s?){9,10}$

In this regex, I have allowed the digits to be separated by spaces in any way, because there isn't a single standardized way of breaking down the numbers. You could further narrow this down to certain allowed groupings, if you like, but it would greatly increase the complexity of the regex.

Your question implies you might want something broader or different. As some of your examples aren't valid UK numbers (+1213 3133143, 12345 123456).

You could use something like this to simply match between 10 and 12 digits, with arbitrary spacing, possibly preceded by a +:

^\+?(?:\d\s?){10,12}$

Upvotes: 12

Related Questions