Satisfies all your requirements if you use the trick told below
Regex: /^(\+\d{1,3}[- ]?)?\d{10}$/
^start of line- A
+followed by\d+followed by aor-which are optional. - Whole point two is optional.
- Negative lookahead to make sure
0s do not follow. - Match
\d+10 times. - Line end.
DEMO Added multiline flag in demo to check for all cases
P.S. You really need to specify which language you use so as to use an if condition something like below:
// true if above regex is satisfied and (&&) it does not (`!`) match `0`s `5` or more times
if(number.match(/^(\+\d{1,3}[- ]?)?\d{10}$/) && ! (number.match(/0{5,}/)) )