What I'd recommend is trimming out the spaces and the - from the field, and then validate the digits only.
Because I doubt
-----0-4 023 - 331 34 124
00000 -
-
etc
should be considered a valid phone-numbers?
And if you then try to make a phone-number regex to take that into considerations you'll either not succeed, or run into an expression that's so complex that it's not maintainable.
So instead trim your input/format your input into a format you control, which you then easily can validate and use that.
If you really want to go a Regular Expression route, I'd think something like
^[1-9]([ \-0-9][0-9]+)+$
is what you're after.
(if the number must not start with 0, otherwise replace the first [1-9] with [0-9])
Also change the final + into {0;y} for how many blocks of numbers you allow etc if there's a limit/focus on how many 'blocks' of numbers you allow.
Regular expressions can quickly become very complex.