216 lines
5.0 KiB
JavaScript
216 lines
5.0 KiB
JavaScript
//<SCRIPT Language="JavaScript">
|
|
|
|
//function qui retourne le resultat de l'algorithme siren qui doit être multiple de 10
|
|
function nGetAlgoSiren(sString)
|
|
{
|
|
iLengthString=sString.length ;
|
|
if (iLengthString==9)
|
|
{
|
|
nAlgoSiren=0 ;
|
|
}
|
|
if (sString.length!=0)
|
|
{
|
|
if(iLengthString%2==0) //rang pair
|
|
{
|
|
nTemp = 2*(sString.substring(0,1)) ;
|
|
if ((nTemp.toString()).length==2)
|
|
{
|
|
nTemp= parseInt((nTemp.toString()).substring(0,1)) + parseInt((nTemp.toString()).substring(1,2)) ;
|
|
}
|
|
nAlgoSiren += nTemp + nGetAlgoSiren(sString.substring(1,iLengthString));
|
|
}
|
|
else //rang impair
|
|
{
|
|
nTemp = parseInt(sString.substring(0,1)) ;
|
|
nAlgoSiren += parseInt(sString.substring(0,1)) + nGetAlgoSiren(sString.substring(1,iLengthString));
|
|
}
|
|
}
|
|
return(nAlgoSiren)
|
|
}
|
|
|
|
//function qui verifie qu'on a bien un numéro SIREN
|
|
function bCheckSirenNumber(sString)
|
|
{
|
|
var iLengthIdent=sString.length ; //longueur de l'identifiant
|
|
var bIsSiren=false ;
|
|
if ((iLengthIdent==9)&&(sString.indexOf(" ")==-1)&&(isNaN(sString)==false))
|
|
{
|
|
if (sString.substring(0,2)=="20")
|
|
{
|
|
bIsSiren=true ;
|
|
}
|
|
else
|
|
{
|
|
//variable pour la fonction nGetAlgoSiren
|
|
//(hors fonction car récursive)
|
|
var iLengthString ;
|
|
var nAlgoSiren ;
|
|
var nTemp ;
|
|
if (nGetAlgoSiren(sString)%10==0) //multiple de 10 ?
|
|
{
|
|
bIsSiren=true ;
|
|
}
|
|
}
|
|
}
|
|
return(bIsSiren);
|
|
}
|
|
|
|
//function qui vérifie la validité de la date
|
|
function bCheckBirthDay(sDate)
|
|
{
|
|
var bIsDate=false ;
|
|
//exeption
|
|
if (sDate=="000000")
|
|
{
|
|
bIsDate=true ;
|
|
}
|
|
else
|
|
{
|
|
//exeption encore
|
|
if ((sDate.substring(0,2)=="00")&&(sDate.substring(2,4)>=0)&&(sDate.substring(2,4)<13)&&(sDate.substring(4,6)>=0)&&(sDate.substring(4,6)<100))
|
|
{
|
|
bIsDate=true ;
|
|
}
|
|
else
|
|
{
|
|
bIsDate=bCheckDate(sDate.substring(0,2),sDate.substring(2,4),'20' + sDate.substring(4,6))
|
|
}
|
|
}
|
|
return(bIsDate) ;
|
|
}
|
|
|
|
//fonction récursive qui verifie que si la chaine comporte un chiffre,il s'agit du premier du suffixe
|
|
//declaration hors fonction car celle ci est récursive
|
|
function bCheckBdfKeySuffix(sString)
|
|
{
|
|
var bIsCheck, sLetter;
|
|
bIsCheck=true ;
|
|
sLetter=sString.substring(0,1) ;
|
|
if (sLetter!="")
|
|
{
|
|
if (isNaN(sLetter)==false) //la lettre est un chiffre
|
|
{
|
|
if(sLetter==" ")
|
|
{
|
|
bIsCheck=bCheckBdfKeySuffix(sString.substring(1,sString.length)) ;
|
|
}
|
|
else
|
|
{
|
|
//on verifie qu'il s'agit des 2 derniers caracteres
|
|
if (sString.length!=2 || isNaN(sString))
|
|
{
|
|
bIsCheck=false ;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bIsCheck=bCheckBdfKeySuffix(sString.substring(1,sString.length)) ;
|
|
}
|
|
}
|
|
return(bIsCheck)
|
|
}
|
|
|
|
//fonction qui verifie :
|
|
// si la chaine comporte des blancs,il sont contigus et en fin de zone
|
|
// la chaine hors suffixe fait au maximum 5 caracteres
|
|
function bCheckBdfKeyBlank(sString)
|
|
{
|
|
var iBlank, bIsCheck, sLetter, sBlank, iLetter ;
|
|
//on retire le suffixe s'il est présent
|
|
if (!(isNaN(sString.substr(sString.length-1,1))))
|
|
{
|
|
sString=sString.substring(0,sString.length-2) ;
|
|
}
|
|
if (sString.length>4)
|
|
{
|
|
bIsCheck=false ;
|
|
}
|
|
else
|
|
{
|
|
bIsCheck=true ;
|
|
sLetter=sString.substring(0,1) ;
|
|
if (sLetter!="")
|
|
{
|
|
iBlank=sString.indexOf(" ") ;
|
|
if (iBlank!=-1)
|
|
{
|
|
//les blancs doivent être contigus et en fin de zone
|
|
sBlank=sString.substring(iBlank,sString.length) ;
|
|
sBlank=replaceChar(sBlank," ","")
|
|
if (sBlank.length!=0)
|
|
{
|
|
bIsCheck=false ;
|
|
}
|
|
}
|
|
sString = sString.toUpperCase();
|
|
while (sString.length>0)
|
|
{
|
|
iLetter = sString.charCodeAt(0);
|
|
if ((iLetter<65 || iLetter>90 ) && iLetter!=32)
|
|
{
|
|
bIsCheck=false;
|
|
break;
|
|
}
|
|
sString=sString.substr(1);
|
|
}
|
|
}
|
|
}
|
|
return(bIsCheck)
|
|
}
|
|
|
|
//fonction qui teste l'identifiant
|
|
function iCheckIdentifiant(sIdent)
|
|
{
|
|
var iCheckIdent = cstSiren ; //on suppose que c'est un n°siren
|
|
var sLetter1 ;
|
|
if (bCheckSirenNumber(sIdent)==false) //ce n'est pas un n°siren
|
|
{
|
|
if (bCheckBirthDay(sIdent.substring(0,6))==false) //erreur au niveau de la date de naissance
|
|
{
|
|
iCheckIdent=cstNothing ;
|
|
}
|
|
else
|
|
{
|
|
sLetter1=sIdent.substring(6,7) ;
|
|
if ((isNaN(sLetter1)==false)||(sLetter1==" ")) //erreur au niveau de la premiere lettre
|
|
{
|
|
iCheckIdent=cstNothing ;
|
|
}
|
|
else
|
|
{
|
|
if (bCheckBdfKeySuffix(sIdent.substring(7,sIdent.length))==false)//erreur au niveau des chiffres
|
|
{
|
|
iCheckIdent=cstNothing ;
|
|
}
|
|
else
|
|
{
|
|
if (bCheckBdfKeyBlank(sIdent.substring(7,sIdent.length))==false)//erreur au niveau des blancs
|
|
{
|
|
iCheckIdent=cstNothing ;
|
|
}
|
|
else
|
|
{
|
|
iCheckIdent=cstBDFKey ;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return(iCheckIdent);
|
|
}
|
|
|
|
// fonction qui valide un code guichet
|
|
function bCheckCdGuichet(sCdGuichet) {
|
|
|
|
if ((sCdGuichet.length == 5) && (parseInt(sCdGuichet) != Number.NaN)) return true;
|
|
return false;
|
|
}
|
|
|
|
// fonction qui valide une adresse e-mail
|
|
function bCheckEmail(sEmail) {
|
|
|
|
if (sEmail.length > 75) return false;
|
|
if (sEmail.indexOf("@",0)==-1) return false;
|
|
return true;
|
|
} |