2017-01-19 2 views
0

Je crée une regex pour la validation des numéros de téléphone. Maintenant, j'ai ceci:
/^[+]\b\d{9,12}\b|\b\d{8,9}\b/
il correspond à tous les numéros de téléphone que je connais, mais il manque une chose. Je veux que ce soit vrai si j'utilise: +351913456789 ou 00351913456789.
Comment puis-je atteindre la partie 00?Javascript regex commence par ceci ou cela

+3

Rendez les options '00' et' + 'facultatives pour l'intro. '^ (?: [+] | 00) \ d {9,12}' – chris85

+2

Peut-être que c'est une meilleure idée d'utiliser la librairie libphonenum de google, https://github.com/googlei18n/libphonenumber. Les phonenumbers validant avec succès (et fiables) ont besoin de beaucoup plus que l'expression rationnelle que vous avez. – baao

+0

Je ne connaissais pas cette bibliothèque! Favoris –

Répondre

3

Utilisez le tuyau | pour faire correspondre les modèles alternatifs?

^(?:[+]\b|00)\d{9,12}\b|\b\d{8,9}\b

+0

Peut-être même '^ (?: [+] \ B | \ b00)'? – evolutionxbox

+2

'\ b' correspond à" word boundaries ", dans ce cas n'est pas nécessaire car le' 00' est au début de la chaîne, donc ne peut être précédé d'aucun mot –

+0

Bon, c'est bon à savoir – evolutionxbox