RegEx pour le numéro de téléphone en JavaScript

J'utilisais RegEx pour valider les numéros de téléphone utilisateur. J'ai des exigences pour la validation du numéro de téléphone. Je n'ai pas beaucoup d'idée sur le RegEX. Est-ce que quelqu'un peut m'aider à fournir un critère correspondant pour mes besoins. Ici, la validation est très simple.

Conditions

1. It should allow numbers from 0-9. 2. It should allow + sign. (+ sign is not mandatory but not allow after even a single letter (ie: should be placed at front.)). 3. It should allow - sign. (- sign is also not mandatory and can be placed anywhere) 4. It should allow empty space everywhere. 5. No dots or no other chars allowed except the above said things. 

Valeurs correctes

 +65-12345678 65-12345678 6512345678 65 12345678 65 123 45678 65 123-45678 +65 123-45678 1234 

Valeurs incorrectes

 12345+86666 123alpha 

Merci

Juste pour vous aider à construire des concepts.
Le regex suivant correspondrait aux sept premières entrées que vous avez fournies.

 /^\+?\d{2}[- ]?\d{3}[- ]?\d{5}$/ 

\+? Correspondrait à un signe + . Le ? Il rend le signe + optionnel.
\d{2} correspond à deux chiffres
[- ]? Correspond à un - ou a (espace). ? Fait l'apparition de - ou (Espace) en option.
\d{5} correspond à 5 chiffres.
^ Et $ sont les ancres de début et de fin.

Sur la base de vos échantillons, essayez ceci:

 ^(?:\+?\d{2}[ -]?\d{3}[ -]?\d{5}|\d{4})$ 

Il correspondra à toutes les valeurs correctes.

LA DESCRIPTION:

Visualisation d'expression régulière

DEMO:

http://regexr.com?340nf

Selon vos échantillons, essayez ce modèle.

 ^(?:\+?\d{2}[ -]?[\d -][\d -]+)$