Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Javascript] Controllo P.Iva

    Sò che molti di voi appena leggeranno il thread diranno "ma fare un bel search e trovare dei thread aperti sull'argomento no?" e io invece gli rispondo : "Il javascript che controlla la p.iva ce l'ho ma non và bene" Semplicemente perchè i comuni mortali sanno che la partita iva in italia è composta da 11 cifre.. ebbene nel caso di un azienda italiana che ha sedi anche in altre nazioni la partita iva non sarà più di 11 cifre ma di 13 perchè davanti ci sarà il prefisso (nel caso italia) "IT". Quindi mi trovo a dover controllare che i primi due char siano caratteri e gli altri 11 siano number senza escludere il controllo della correttezza del numero (che dopo il prefisso è uguale a ciò che tutti conoscono).

    Questo è il javascritp che qualsiasi sito italiano proprone per il normale controllo della p.iva :

    codice:
    function partitaIVA(sz_Codice)
    		   {
    		   var n_Val,n_Som1=0,n_Som2=0,lcv;
    		   if (sz_Codice.length!=11 || isNaN(parseFloat(sz_Codice)) || parseFloat(sz_Codice)<parseFloat(0))
    			  return false;
    		   
    		   for (lcv=0;lcv<9;lcv+=2)
    		   {
    			  n_Val=parseInt(sz_Codice.charAt(lcv));
    			  n_Som1+=n_Val;
    			  n_Val=parseInt(sz_Codice.charAt(lcv+1));
    			  n_Som1+=Math.floor(n_Val/5) + (n_Val<<1) % 10;
    		   }
    		   n_Som2 = 10 - (n_Som1 % 10);
    		   n_Val=parseInt(sz_Codice.charAt(10));
    		   if (n_Som2==n_Val)
    			  return true;
    		   return false;
    		   }
    Ora come posso modificare ciò in modo da controllare ciò che mi serve?

  2. #2

    Re: [Javascript] Controllo P.Iva

    codice:
            function verifyIntPIva( __code )
            {
              var _token = __code.match( /^([A-Za-z]{2})(\d{11})$/i );
              if ( _token != null )
              {
                var _num = _token[2];
                var _tmp = 0;
                
                for (var i=0; i<9; i+=2)
                  _tmp += parseInt( _num.charAt(i) ) + Math.floor( _num.charAt(i+1)/5 ) + (( _num.charAt(i+1) << 1) % 10);
    
                if ( (10 - (_tmp % 10)) == parseInt( _token[2].charAt(10) ) )
                  return true;
    
                alert( "La partita IVA ha un formato valido, ma non è corretta." );
                return false;
    
              }
    
              else {
                alert( "La partita IVA ha un formato non valido." ); 
                return false;
              }
            }
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.