Vérification du numéro de tva intracommunautaire d'une société

Soyez le premier à donner votre avis sur cette source.

Snippet vu 30 609 fois - Téléchargée 16 fois

Contenu du snippet

Un petit test pour s'assurer qu'un numéro de TVA intracommunautaire est correct.

La vérification est faite dans les grandes lignes, il n'y a pas par exemple aucune vérification du n° SIREN pour une entreprise française. Cette vérification se base sur la liste suivante :
http://www.eic.ccip.fr/informations/tva/tva2.htm#som04

Le code source comprend trois fonctions :
- test_tva_valide
- test_tva_valide_ou_vide
- test_champ_vide

La première vérifie le n° de TVA intracommunautaire, la seconde fait la même chose mais accepte que le champ soit vide (si le formulaire n'est pas réservé aux entreprises par exemple), et la dernière teste simplement si le champ est vide ou non.

Elles prennent toutes 2 paramètres :
- le nom du champ (obligatoire) a testé.
- un message (optionnel) a affiché en cas d'erreur. On peut donc mettre un message dans la langue de son choix (pratique pour les sites multlingues). Voici un exemple de message ' n\'est pas un n° de TVA valide. Veuillez-le corriger...'

Source / Exemple :


function test_tva_valide(champ, message)
{
        var tva_intra = champ.value;
	// Pour la constitution de l'expression régulière, voir sur http://www.eic.ccip.fr/informations/tva/tva2.htm#som04
	// Pour les vieilles casseroles (ou navigateurs antédiluviens), remplacer \d par [0-9] et [A-Z\d] par [A-Z0-9]
        var motif = /^(RO\d{2,10}|GB\d{5}|(ATU|DK|FI|HU|LU|MT|CZ|SI)\d{8}|IE[A-Z\d]{8}|(DE|BG|EE|EL|LT|BE0|PT|CZ)\d{9}|CY\d{8}[A-Z]|(ES|GB)[A-Z\d]{9}|(BE0|PL|SK|CZ)\d{10}|(FR|IT|LV)\d{11}|(LT|SE)\d{12}|(NL|GB)[A-Z\d]{12})$/;
        if (window.RegExp)
        {
                if (!motif.test(tva_intra))
                {
                        if (message != '')
						{
                                alert("\"" + tva_intra + "\" " + message);
                        }
                        champ.focus();
                        champ.select();
                        return false;
                }
                else
                {
                        return true;
                }
        }
        else
        {
               if (tva_intra.length < 4 || tva_intra.length > 14)
                {
                        if (message != '')
						{
                                alert("\"" + tva_intra + "\" " + message);
                        }
                        champ.focus();
                        champ.select();
                        return false;
                }
                else
                {
                        return true;
                }
        }
}

function test_tva_valide_ou_vide(champ, message)
{
	if (test_champ_vide(champ, ''))
	{
		return test_tva_valide(champ, message);
	} else {
		return true;
	}
}

function test_champ_vide(champ, message)
{
	if (champ.value == '') {
		if (message != '') {
			alert(message);
		}
		champ.focus();
		champ.select();
		return false;
	} else {
		return true;
	}
}

Conclusion :


Si vous voulez un test plus poussé, jetez un oeil sur le vform de Kakoo :
http://www.javascriptfr.com/code.aspx?ID=45893

A voir également

Ajouter un commentaire

Commentaire

Messages postés
6
Date d'inscription
lundi 26 janvier 2009
Statut
Membre
Dernière intervention
1 mars 2011

Bonjour !
Cela fait un moment que je cherchais ce genre de code ! Merci !
Toutefois, je vais essayer de le modifier afin de pouvoir vérifier le n° SIREN pour une entreprise française.
En effet, j'ai vérifié sur le site http://www.easytva.com et le résultat est parfois différent...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.