ho scaricato una funzione vbscript per la validazione della partita iva.
la chiamata che faccio è questa:
if ControllaPIVA(p_iva) then
err15="
-Il campo Partita Iva è obbligatorio"
error="1"
end if
l'errore è questo :
Tipo di errore:
Errore di run-time di Microsoft VBScript (0x800A000D)
Tipo non corrispondente: '[string: "La lunghezza della p"]'
/lastfinale4/admin/add/anagrafica.asp, line 178
il line 178 è questo:if ControllaPIVA(p_iva) then
la funzione è questa:
function ControllaPIVA(pi)
if pi = "" then
ControllaPIVA = ""
else
'---------------------------------------------------------------------
if Len(pi) <> 11 then
controllaPIVA = "La lunghezza della partita IVA non è " &_
"corretta: la partita IVA dovrebbe essere lunga " &_
"esattamente 11 caratteri."
else
'-----------------------------------------------------------
Dim objER, result
' istanzia l'oggetto REGULAR EXPRESSION
Set objER = New RegExp
' cerca il pattern in tutta la stringa di input
objER.Global = True
' nessuna differenza fra maiuscole/minuscole
objER.IgnoreCase = True
'''''''''''''''''''''''''''''''''''''''''''''''''
objER.Pattern = "^[0-9]+$"
'''''''''''''''''''''''''''''''''''''''''''''''''
' verifica la corrispondenza con il pattern
result = objER.Test(pi)
if result <> true then
controllaPIVA = "La partita IVA contiene dei caratteri non ammessi: " &_
"la partita IVA dovrebbe contenere solo cifre."
Set objER = Nothing
else
'------------------------------------------------
Dim s, s1, s2, c, i, char
s1 = 0
for i = 0 to 9
i = i + 1
char = mid(pi , i , 1 )
s1 = s1 + asc(char) - asc("0")
'''''''''''''''''''''''''''''''
'controllo dell incremento della variabile
' response.write(("valore = ")& (asc(char)- asc("0")) & (" s1 = ") & s1 &("
") )
''''''''''''''''''''''''''''''''
next
for i = 1 to 9
i = i + 1
char = mid(pi , i , 1 )
c = 2* ( asc(char) - asc("0"))
if c > 9 then
c = c - 9
s2 = s2 + c
else
s2 = s2 + c
end if
'''''''''''''''''''''''''''''''
'controllo dell incremento della variabile
' response.write(("valore = ")& (asc(char)- asc("0")) & (" c = ") & c & (" s2 = ") & s2 &("
") )
''''''''''''''''''''''''''''''''
next
s = s1 + s2
'''''''''''''''''''''''''
'verifica della variabile
'response.Write(s & ("
"))
'''''''''''''''''''''''''
if( ( 10 - s Mod 10 ) mod 10 <> asc(Mid(pi, 11, 1)) - asc("0") ) then
'ControllaPIVA(pi)
controllaPIVA = "La partita IVA non è valida: "&_
"il codice di controllo non corrisponde."
else
controllaPIVA = ""
end if
'------------------------------------------------
end if
'------------------------------------------------------------
end if
'---------------------------------------------------------------------
end if
end function

Rispondi quotando