There is no such thing as a regex to match phone numbers for multiple countries, which is what it sounds like you need. Trust me, I've tried.
And as stated above, just allow a user to input anything and strip anything which isn't a number before saving it to a database. This way, when you redesign your application in 2 years and the designer says "I want decimals instead of dashes", you don't have to go and muck with the database - you just adjust your presentation layer.
Something like this might suit you though:
/^(?:[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}|[0-9]{3}[-\s\.]{0,1}[0-9]{4})$/
Matches the following:
1234567
123 4567
123.4567
123-1234
1234567890
123 456 7890
123.456.7890
123-456-7890
...but not this:
(123)1234